Seaborn热图颜色相反

时间:2017-11-26 07:22:18

标签: pandas matplotlib seaborn

我正在使用在我的苹果计算机上看起来像这样的代码从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')

我得到的热像图如下:

enter image description here

然后我将我的代码放入带有ubuntu映像的docker容器中,然后安装相同版本的seaborn。唯一的区别是我需要添加一个matplotlib配置,以便TCL不会尖叫:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import seaborn as sns

我得到一个看起来像这样的热图(我使用相同的代码和相同的pandas数据帧):

enter image description here

我无法找到为什么颜色渐变被反转,如果您有任何想法,我很乐意听到。

谢谢!

1 个答案:

答案 0 :(得分:3)

对于序列数据,默认色彩映射已更改为cmap,其中包含0.8版本的seaborn,请参阅the release notes。色图现在看起来像这样:

您始终可以使用cmap=sns.cubehelix_palette(light=.95, as_cmap=True)参数并指定您希望使用的色彩映射表。例如,要获取非差异数据的0.8之前的色彩映射,请使用:{{1}}。