【发布时间】:2022-01-05 00:14:50
【问题描述】:
我已经弄清楚如何打印matplotlib 散点图并根据单击点的元数据单击这些点以提供其他数据的图表。我现在想将类似的想法应用于seaborn 热图。问题是我用于matplotlib 图的逻辑似乎是散点图所独有的。以here 为特色并写在下面的循环不适用于热图。
import matplotlib.pyplot as plt
class custom_objects_to_plot:
def __init__(self, x, y, name):
self.x = x
self.y = y
self.name = name
a = custom_objects_to_plot(10, 20, "a")
b = custom_objects_to_plot(30, 5, "b")
c = custom_objects_to_plot(40, 30, "c")
d = custom_objects_to_plot(120, 10, "d")
def on_pick(event):
print(event.artist.obj.name)
fig, ax = plt.subplots()
for obj in [a, b, c, d]:
artist = ax.plot(obj.x, obj.y, 'ro', picker=5)[0]
artist.obj = obj
fig.canvas.callbacks.connect('pick_event', on_pick)
plt.show()
为了更详细一点,我有五个主题,每个主题都根据十个参数对某事进行评分,总共有 50 个评分。我的数据框中除了“主题”、“参数”和“评级”列之外,还有一个用于 cmets 的列。当我单击热图时,我希望这些 cmets 打印出来,该热图具有沿水平轴的主题和沿垂直轴的参数。
似乎我应该能够使用热图中的位置来识别主题-参数组合并查找该主题对于该参数有哪些 cmets,但是从单击的单元格中提取主题和参数让我望而却步,并且带有custom_objects_to_plot 的参考代码似乎不适用于热图。虽然我对如何执行此任务有自己的想法,但如果我能从单击的单元格中获取主题和参数,我欢迎使用不同方法但仍然给我一个可单击的seaborn 热图的答案。
【问题讨论】:
标签: python graphics onclick seaborn heatmap