在streamlit python 上绘制on_click 功能

问题描述 投票:0回答:1

我正在用plotly开发一个图表,它工作得很好,但我想在单击绘图上的任何点时使用st.write在屏幕上显示一些信息。在plotly中,这可以使用on_click方法轻松完成。但它不适用于streamlit。我尝试过另一个名为plotly events的库,但它在新版本的streamlit中生成黑白图表。

该图是一个简单的散点图。

import streamlit as st
import plotly.express as px

def click(trace, points, selector):
    st.write("hello")

x = [1,2,3]
y = [4,5,6]
z = [10,11,2]
fig = px.scatter(x=x, y=y, size = z)
fig.data[0].on_click(click) 
st.plotly_chart(fig, use_container_width=True)

顺便说一句,如果将 Fig.data[0] 行放在 st.plotly_chart 行之后也没关系,因为它仍然不起作用。请帮忙

python plotly streamlit
1个回答
0
投票

以下代码将 Plotly 的点击功能与 Streamlit 集成,并在单击散点图上的点时显示信息:

import streamlit as st
import plotly.express as px

def click(trace, points, selector):
    selected_point = points.point_inds[0]
    x_val = fig.data[0].x[selected_point]
    y_val = fig.data[0].y[selected_point]
    st.write(f"Clicked point: x={x_val}, y={y_val}")

x = [1, 2, 3]
y = [4, 5, 6]
z = [10, 11, 2]
fig = px.scatter(x=x, y=y, size=z)
fig.data[0].on_click(click)

st.plotly_chart(fig, use_container_width=True)

在此代码中,当单击散点图上的点时,将调用

click
函数。它检索所选点的索引,然后从散点图数据中访问相应的
x
y
值。然后使用
st.write
显示信息。这样,当您点击散点图中的某个点时,该点的信息就会显示在 Streamlit 界面上。

© www.soinside.com 2019 - 2024. All rights reserved.