Как выполнить функцию в python / streamlit, щелкнув точку на графике

Я хочу выполнять функцию, когда нажимаю точку на графике.

В настоящее время для построения графика я использую Python, Streamlit и Vega-Lite. Я хочу создать что-то, что дает мне больше информации о нажатой точке, выполнив функцию python.

Итак, я хочу выполнить функцию search(), но вместо того, чтобы самому указывать аргументы, я хочу указать значения a, b и c точки, по которой щелкнули мышью.

df = pd.DataFrame(np.random.randn(200, 3),columns=['a', 'b', 'c'])

df = df.append({'a':1, 'b':1, 'c':1}, ignore_index=True)

st.vega_lite_chart(df, {
 'mark': {'type': 'circle', 'tooltip': True},
 'encoding': {
     'x': {'field': 'a', 'type': 'quantitative'},
     'y': {'field': 'b', 'type': 'quantitative'},
     'size': {'field': 'c', 'type': 'quantitative'},
     'color': {'field': 'c', 'type': 'quantitative'},
 },
})

def search(arg1, arg2, arg3):
   return df.loc[(df['a']==1) & (df['b']==1) & (df['c']==1)]

searched = search(1,1,1)
searched

граф изображения в Streamlit

Я знаю, что можно щелкнуть график с помощью vega-lite, как в следующем примере https://vega.github.io/vega-lite/examples/point_href.html. Но вместо того, чтобы идти в Google, я хочу выполнить функцию python.

Есть ли какой-либо тип графа, который можно использовать для этого типа задач?


person sophie    schedule 30.04.2020    source источник


Ответы (1)


Взаимодействие с графиками пока не поддерживается.

Дополнительные сведения см. По этой ссылке.

person LogZ    schedule 31.03.2021