Python 如何在seaborn热图中设置绝对颜色范围?

Python 如何在seaborn热图中设置绝对颜色范围?,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,所有-我有以下代码来绘制热图: import pandas as pd pd.plotting.register_matplotlib_converters() import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns data = pd.pivot_table(df.round({'DataA':1}), index='Position',columns='Start', values='Dat

所有-我有以下代码来绘制热图:

import pandas as pd    
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns

data = pd.pivot_table(df.round({'DataA':1}), index='Position',columns='Start',  values='DataA', aggfunc= 'sum')
    data = data.fillna(0)
    import matplotlib.colors as colors

    cmap, norm = colors.from_levels_and_colors([-15000, -500, -10,10,500,10000,100000], ['red','orange','white','green', 'lime','blue'])


f, ax = plt.subplots(figsize=(16, 8))
ax = sns.heatmap(data, annot=True, fmt='g', linewidths=.5, ax=ax, cbar=True,cmap=cmap,norm=norm).set_title('Title')
plt.show()
产生:

您将看到在第二列中有一个全空白单元格,该单元格应显示值
11786.2
,但我看不到它。为什么超过10000的所有值都不显示?我做错了什么


任何帮助都将不胜感激

出于某种奇怪的原因,你的“蓝色”带丢失了(也在颜色栏中)。是否安装了matplotlib和seaborn的最新版本?在我用玩具数据进行的快速测试中,蓝色部分如预期的那样出现。如果重新启动环境,您是否也会遇到同样的问题?谢谢@JohanC。是的,我不知道它为什么这么做。我通过Anaconda使用
Jupyter笔记本
,这些是我的导入:
pd.plotting.register_matplotlib_converters()导入matplotlib.pyplot作为plt%matplotlib内联导入seaborn作为sns
查看版本号:
import seaborn作为sns;打印(sns.\uuuuu版本)
导入matplotlib;打印(matplotlib.\uuuuuuuuuuu版本)
应该打印类似于
0.10.1
3.2.1
的内容。如果您的版本早于
0.10
3.2
,建议升级。谢谢@JohanC。我的版本是
0.10.0和3.1.3
您可以尝试将“蓝色”更改为其他颜色。例如,“道奇蓝”或“海军”。或者,作为测试,只需更改颜色的顺序,即可查看列表中的“蓝色”或最后一种颜色的情况。出于某种奇怪的原因,您的“蓝色”带丢失(也在颜色栏中)。是否安装了matplotlib和seaborn的最新版本?在我用玩具数据进行的快速测试中,蓝色部分如预期的那样出现。如果重新启动环境,您是否也会遇到同样的问题?谢谢@JohanC。是的,我不知道它为什么这么做。我通过Anaconda使用
Jupyter笔记本
,这些是我的导入:
pd.plotting.register_matplotlib_converters()导入matplotlib.pyplot作为plt%matplotlib内联导入seaborn作为sns
查看版本号:
import seaborn作为sns;打印(sns.\uuuuu版本)
导入matplotlib;打印(matplotlib.\uuuuuuuuuuu版本)
应该打印类似于
0.10.1
3.2.1
的内容。如果您的版本早于
0.10
3.2
,建议升级。谢谢@JohanC。我的版本是
0.10.0和3.1.3
您可以尝试将“蓝色”更改为其他颜色。例如,“道奇蓝”或“海军”。或者,作为一项测试,只需更改颜色的顺序,就可以查看“蓝色”或列表中最后一种颜色的情况。