【发布时间】:2018-05-09 16:28:18
【问题描述】:
我正在使用我的 Apple 计算机上的代码从 pandas 数据帧生成热图。
import matplotlib.pyplot as plt
import seaborn as sns
fig, ax = plt.subplots(figsize=(14,14))
sns.set(font_scale=1.4)
sns_plot = sns.heatmap(df, annot=True, linewidths=.5, fmt='g', ax=ax).set_yticklabels(ax.get_yticklabels(), rotation=0)
ax.set_ylabel('Product')
ax.set_xlabel('Manufacturer')
ax.xaxis.set_ticks_position('top')
ax.xaxis.set_label_position('top')
fig.savefig('output.png')
我得到一个像这样的热图:
然后,我将代码放入带有 ubuntu 映像的 docker 容器中,并安装相同版本的 seaborn。唯一的区别是我需要添加一个matplotlib配置,这样TCL就不会尖叫了:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import seaborn as sns
我得到一个看起来像这样的热图(我使用相同的代码和相同的 pandas 数据框):
我无法找到颜色渐变反转的原因,如果您有任何想法,我很想听听。
谢谢!
【问题讨论】:
-
确保在这两种情况下使用相同的 seaborn 版本,默认颜色图最近发生了变化。尽管如此,它看起来有点奇怪,因为颜色栏中显示的颜色在热图图像中不存在(好像缩放改变了)。
-
哦,但第一张图片也是如此 - 这是因为图片被裁剪了。
-
是的,抱歉图片被裁剪了
标签: pandas matplotlib seaborn