看看这个 这个 在海运热图文档中找到的热图。
现在 y 轴从底部的9开始,到顶部的0结束。 有没有一种方法可以改变这种情况,比如从底部的0开始,到顶部的9结束?
看来 ax.invert_yaxis()解决了。
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()
给予:
如果你像我一样使用“十六进制”jointplot()作为热图,那么你可以这样做:
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()
我找到了一个更简单的方法来设置轴顺序,使用选项 Ylim和 Xlim。在下面的例子中,我绘制了一个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()
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()