Python 如何设置热图的X轴和Y轴范围?

Python 如何设置热图的X轴和Y轴范围?,python,seaborn,heatmap,axis,Python,Seaborn,Heatmap,Axis,我试图设置x轴和y轴,但每次尝试时,热图都会缩小到绘图的一角。我试着 plt.xlim(0, 60) plt.ylim(0, 30) 我也试过: ax.set_ylim(0, 30) ax.set_xlim(0, 60) 但这也是同样的道理 以下是我到目前为止所说的热图: pivot = df.pivot_table(index = 'Test X', columns = 'Test Y', values = 'Data') ax = sns.heatmap(pivot, annot = T

我试图设置x轴和y轴,但每次尝试时,热图都会缩小到绘图的一角。我试着

plt.xlim(0, 60)
plt.ylim(0, 30)
我也试过:

ax.set_ylim(0, 30)
ax.set_xlim(0, 60)
但这也是同样的道理

以下是我到目前为止所说的热图:

pivot = df.pivot_table(index = 'Test X', columns = 'Test Y', values = 'Data')
ax = sns.heatmap(pivot, annot = True, fmt = .2g, cmap = 'Blues_r')
我希望X轴从0到60,并显示范围,无论数据是否为60,y到30也是如此。 但这不起作用。

使用

df = pd.DataFrame(np.random.random((15,15)))
sns.heatmap(df)
ax=plt.gca()
ax.set_xlim(0, 60)
我能够得到所需限制的数字


另外,
ax=sns.heatmap(df);ax.set_xlim(0,60)
的行为方式与此相同。也许是您调用ax.set\xlim的方式。希望有帮助

设置限制是无用的,因为数据本身正好在0和N之间,N是数组的行/列数。您可以决定是否要更改ticklabels,或者是否要使用一些matplotlib函数,如
imshow
pcolormesh
,这些函数将遵循一些实际的数据坐标。@ImportanceOfBeingErnest我正在使用seaborn,因此我不确定如何使用不同的调用将其合并到其中。我做了另一次编辑并添加了更多代码来帮助您。如果您想使用seaborn,您可以自定义轴的刻度位置和刻度标签。但你不必使用seaborn,对吗?因此,您可以使用pcolormesh,而不是
sns.heatmap(z,…)
使用
plt.pcolormesh(x,y,z)
,其中x和y是您希望像素定位的坐标向量。@ImportanceOfBeingErnest如果我使用seaborn,更改标签就足够了吗?或者只是改变勾号的名称。我认为它实际上不会对轴产生影响。是的,它不会改变轴;这就是重点。如果要使用seaborn,则无法更改轴,因为第N个像素只有坐标N-1。所以剩下的就是保持轴的原样,但是伪造标签来阅读你想要他们阅读的内容。