看一看 this 在seaborn heatmap文档中找到的热图。
现在,y轴从底部的9开始,在顶部以0结束。 有没有办法扭转这种局面,即从底部的0开始到顶部的9结束?
答案 0 :(得分:34)
看起来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()
答案 1 :(得分:4)
如果你像我一样使用'十六进制'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()
答案 2 :(得分:1)
我发现了使用选项 ylim 和 xlim 设置轴顺序的更简单方法。在以下示例中,我绘制了二维矩阵(NX x NY)的H,更改了轴的顺序:
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()