【发布时间】:2020-06-23 06:26:20
【问题描述】:
我尝试使用来自 pandas 数据帧的 seaborn 绘制四个子图。我的数据帧包含 1 到 9 及其倒数之间的整数值,因此 1/9、1/8 等...因此我尝试使用从 this question #36898008 获得的对数色标。
我使用以下方法创建 lognorm:
from matplotlib.colors import LogNorm
lognorm = LogNorm(vmin=1.0/9.0,vmax=9.0)
并将其应用于我的轴:
axes[i] = sns.heatmap(ldf, ax=axes[i], annot=True, mask=mask, linewidths=.5, norm=lognorm, cbar=None)
效果很好,除非我的数据框中的所有值都是1.0,我的格式只是被抛到了海里。
我正在使用 python 3.6.9、seaborn0.10.1、matplotlib3.2.2 和pandas1.0.5。这张图很好地说明了这个问题:
我尝试过包含 center=1.0 关键字,它会关闭所有其他颜色方案。
奇怪的是,当我省略 cbar=None 关键字时,颜色方案会正确应用。但是,我在每个子图旁边都有一个颜色条,无法整齐地摆脱它(因此不会出现丑陋的空白)。
任何帮助将不胜感激。
干杯
【问题讨论】:
标签: python matplotlib seaborn heatmap color-scheme