使用seaborn
,我正在为DataFrame的各个系列生成热图。
我使用的主要代码如下:
def plot_heatmap(data, cmap, x_label, y_label, y_ticks = None):
fig, ax = plt.subplots()
heatmap = sns.heatmap([data], robust=True,cmap=cmap, annot=False, cbar_kws={"label": "Value"}, ax=ax)
ax.set_xlabel(x_label)
ax.set_ylabel(y_label)
if y_ticks:
heatmap.set_yticklabels([y_ticks])
plt.show()
字符串
并且它是在每个案例中调用的(对于每个Pandas.Series)。我的问题是生成的结果看起来像这样:
x1c 0d1x的数据
但问题是,这看起来有点欺骗性。我为这个图生成了以下随机数据集:gist for dataset。
你看到的0的个数是1,但是有人,观察这个图,会有不同的想法。
那么,我如何改进这个图,使其更准确?我尝试了各种cmap,如:
cmap = sns.diverging_palette(220, 10, as_cmap=True)
cmap2 = sns.diverging_palette(250, 0, sep=1, n=256, as_cmap=True)
cmap3 = 'gist_rainbow'
...
型
但是我没有得到想要的结果。提前谢谢你!
1条答案
按热度按时间bybem2ql1#
你有一个巨大的范围尺度。你可以尝试绘制一个对数的数据:
第一个月
x1c 0d1x的数据
您可以对数据进行分组并绘制分组/类别。例如,0到10之间的值是一种颜色,大于1 e20的值是另一种颜色。您可以以任何适合您的数据集或您想要显示的方式定义分组。在下面的第一个示例中,我在
log10
空间中创建了20个等距分组。字符串
的
在这里,我手动定义bin的值:
型
的