Pandas 海洋出生的热图颜色是相反的

Pandas 海洋出生的热图颜色是相反的,pandas,matplotlib,seaborn,Pandas,Matplotlib,Seaborn,我正在从熊猫数据框生成热图,使用的代码在我的苹果电脑上看起来像这样 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_ytic

我正在从熊猫数据框生成热图,使用的代码在我的苹果电脑上看起来像这样

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
我得到的热图是这样的(我使用相同的代码和数据框):

我不知道为什么颜色梯度是反向的,如果你有任何想法,我很想听听


谢谢大家!

对于seaborn 0.8版本的顺序数据,默认颜色映射已更改为
'rocket'
,请参阅。颜色贴图现在看起来是这样的:


您可以始终使用
cmap
参数并指定您喜欢使用的颜色映射。例如,要获取非发散数据的0.8之前的颜色映射,请使用:
cmap=sns.cubehelix_调色板(light=.95,as_cmap=True)

确保在这两种情况下使用相同的seaborn版本,默认颜色映射最近发生了更改。尽管如此,它看起来有点奇怪,因为颜色栏中显示的颜色在热图图像中不存在(好像缩放发生了变化)。哦,但第一张图像也是如此-这是因为图像被裁剪。是的,很抱歉图像被裁剪谢谢你的回答!有没有一种简单的方法可以说最低的值得到最亮的颜色,而最高的值得到最暗的颜色?如果你想反转一个颜色贴图,你可以在它的名字后面加上
\u r
,所以在
'rocket'
颜色贴图的情况下,你只需要做:
cmap='rocket\u r'
应该用什么名字来获得旧的颜色贴图colormap,如果要使用新数据重新生成热图图,但需要它看起来像旧的热图?在使用
sns.cubehelix\u调色板(light=.95,as\u cmap=True)绘制0.8个无发散数据之前
-可以将其传递给
cmap
参数。我现在已经更新了答案。