seaborn热图y轴逆序

Posted

技术标签:

【中文标题】seaborn热图y轴逆序【英文标题】:seaborn heatmap y-axis reverse order 【发布时间】:2016-03-17 20:53:00 【问题描述】:

看看 this 可在 seaborn 热图文档中找到热图。

现在,y 轴从底部的 9 开始,到顶部的 0 结束。 有没有办法扭转这种局面,即底部以 0 开始,顶部以 9 结束?

【问题讨论】:

【参考方案1】:

看起来ax.invert_yaxis() 解决了它。

按照您获得该图的示例:

import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data)
ax.invert_yaxis()

提供:

【讨论】:

【参考方案2】:

如果您像我一样使用“十六进制”jointplot() 作为热图,那么您可以这样做:

import matplotlib.pyplot as plt
import numpy
import seaborn

x = numpy.arange(10)
y = x**2

g = seaborn.jointplot(x, y, kind='hex')
g.fig.axes[0].invert_yaxis()

plt.show()

【讨论】:

【参考方案3】:

我找到了一种更简单的方法来设置坐标轴顺序,使用选项 ylimxlim。在以下示例中,我绘制了 H,一个 2d 矩阵 (NX x NY),改变了轴的顺序:

import matplotlib.pyplot as plt
import seaborn as sns

NX=10
NY=20
H = np.random.rand(NY, NX)
sns.heatmap(H, xticklabels=True, yticklabels=True, annot = True)
plt.ylim(0,NY)
plt.xlim(0,NX)
plt.show()

NX=10
NY=20
H = np.random.rand(NY, NX)
sns.heatmap(H, xticklabels=True, yticklabels=True, annot = True)
plt.ylim(NY,0)
plt.xlim(NX,0)
plt.show()

【讨论】:

以上是关于seaborn热图y轴逆序的主要内容,如果未能解决你的问题,请参考以下文章

带有日期时间轴的 Seaborn 热图

热图中的日期轴 seaborn

Seaborn热图顶行和底行被部分截断[重复]

使用 Seaborn 和 Matplotlib 在热图和线图的共享子图中对齐 x 轴刻度

seaborn 热图显示轴标签,但当 df.corr 为 NaN 时没有值

Python - Seaborn可视化:图形个性化设置的几个小技巧