Как сделать элементы кликабельными (onpick) в разбросе Seaborn? - PullRequest
0 голосов
/ 08 мая 2019

Я использую функцию sns.scatterplot для анализа некоторых данных. Для меня было бы очень полезно, если бы я мог выбрать объект на графике, щелкнув по нему и выполнить функцию. У Matplotlib есть событие onpick, которое добивается цели, но я не мог найти, как я могу сделать то же самое с Seaborn. Он использует Matplotlib для внутреннего использования, поэтому я думаю, что можно как-то присоединить к нему обработчик onpick.

Причина, по которой я использую Seaborn вместо базового сюжета Matplotlib, заключается в том, что мне нужен параметр hue.

Вот в основном код, который я использую:

import seaborn as sns
import matplotlib.pyplot as plt

def _onpick(event):
    # ... process selected item
    print("Picked!")

tips = sns.load_dataset("tips")
ax = sns.scatterplot(x="total_bill", y="tip", data=tips)

# how to assign an 'onpick' callback

plt.show()

1 Ответ

1 голос
/ 08 мая 2019

Как и в любом другом случае, вы определяете аргумент picker и подключаете функцию обратного вызова.

import seaborn as sns
import matplotlib.pyplot as plt

def onpick(event):
    # ... process selected item
    print("Picked!")

tips = sns.load_dataset("tips")
ax = sns.scatterplot(x="total_bill", y="tip", hue="time", data=tips, picker=4)

ax.figure.canvas.mpl_connect("pick_event", onpick)

plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...