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

时间:2019-05-08 00:45:09

标签: python matplotlib seaborn

我正在使用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 个答案:

答案 0 :(得分:1)

就像在任何其他情况下一样,您定义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()