Как выполнить функцию в Python / Streamlit, нажав на точку на графике - PullRequest
0 голосов
/ 30 апреля 2020

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

В настоящее время я использую 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.

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

Заранее спасибо!

...