【发布时间】:2022-06-22 20:19:30
【问题描述】:
我已经搜索了论坛,但可以找到任何东西。
我的代码如下:
def my_function(df):
plt.figure()
heatmap=sns.heatmap(df,cmap='coolwarm',)
plt.title('title')
plt.show()
return heatmap
我想从热图中检索数据。我已经看到如何使用 matplotlib,但我无法弄清楚如何使用 sns/seaborn 热图
编辑:热图变量类型是
Edit2:我知道我可以在数据框中检索数据,但我想对我的函数进行单元测试,这就是为什么我尝试在 seaborn 热图中检索数据
【问题讨论】:
-
请注意,在
plt.show()之后图像被删除,所以return heatmap(实际上是ax(一个子图),所以你可以将它命名为ax_heatmap左右)没道理。如果你只想要数据,你应该return df或return df.to_numpy()。 -
我知道,但我实际上是在尝试使用 pytest 对函数进行单元测试。所以我想确保热图有我放入的数据
-
您可以查看 seaborn 如何进行单元测试:github.com/mwaskom/seaborn/blob/master/seaborn/tests/…
-
谢谢...他们使用 p = mat._HeatMapper(self.df_norm, **self.default_kws) npt.assert_array_equal(p.plot_data, self.x_norm) 但我不知道 HeatMapper 是什么.我在我的 seaborn 对象中找不到 plot_data
-
可能是
ax = sns.heatmap(....),然后是ax.collections[0].get_array()?正如 seaborn 的测试代码所示,热图中的信息量很大,不清楚您到底想测试什么。