Python 如何在Seaborn散点图中使项目可点击(点击)?

Python 如何在Seaborn散点图中使项目可点击(点击)?,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我正在使用sns.scatterplot函数来分析一些数据。如果我可以通过单击在绘图上选择一个对象并执行一个函数,这将对我非常有帮助。Matplotlib有一个事件可以完成这个任务,但我找不到如何对Seaborn进行同样的操作。它在内部使用Matplotlib,因此我认为可以以某种方式将onpick处理程序附加到它 我使用Seaborn而不是基本Matplotlib plot的原因是我需要hue参数 下面是我正在使用的基本代码: import seaborn as sns import matp

我正在使用
sns.scatterplot
函数来分析一些数据。如果我可以通过单击在绘图上选择一个对象并执行一个函数,这将对我非常有帮助。Matplotlib有一个事件可以完成这个任务,但我找不到如何对Seaborn进行同样的操作。它在内部使用Matplotlib,因此我认为可以以某种方式将
onpick
处理程序附加到它

我使用Seaborn而不是基本Matplotlib plot的原因是我需要
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()

与任何其他情况一样,定义
选取器
参数并连接回调函数

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()

如果其他所有操作都失败,您始终可以通过过滤要更改的元素的
ax.get_children()
的输出来获得艺术家的句柄。