海运热图 y 轴逆序

看看这个 这个 在海运热图文档中找到的热图。

现在 y 轴从底部的9开始,到顶部的0结束。 有没有一种方法可以改变这种情况,比如从底部的0开始,到顶部的9结束?

58136 次浏览

看来 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()

给予: enter image description here

如果你像我一样使用“十六进制”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()

enter image description here

我找到了一个更简单的方法来设置轴顺序,使用选项 YlimXlim。在下面的例子中,我绘制了一个2d 矩阵 H (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()

enter image description here

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()

enter image description here