我想将坐标从1设置为N,而不是设置为N。
我曾尝试使用set_ylim()
或set_ybound
,但失败了。
# Plot the pic.
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title("Distribution of sequence order correlation values")
ax.axes.set_xlabel("Column index")
ax.axes.set_ylabel("Row index")
cax = ax.imshow(tar_data, interpolation='nearest')
cbar = fig.colorbar(cax)
答案 0 :(得分:2)
这是一个解决方案。它有两个折叠。
首先,您可以使用extent
函数的imshow
关键字来指定轴的范围。如果您希望第一个像素的中心位于位置1,则意味着像素的开头位于位置0.5。同样,如果最后一个像素的中心位于第8位,则像素的末端为8.5。这就是为什么你在我的代码中看到范围从0.5到nx+0.5
,其中nx
是x方向上的点数。
执行此操作后,轴的范围为0.5到8.5。那么,你的蜱虫。那不是很漂亮。要更改此设置,您可以使用ax.set_xticks()
和ax.set_yticks()
将代码重新定义为1到8。
import numpy as np
import matplotlib.pyplot as plt
data = np.array([[1,23,12],[24,12,7],[14,9,4] ])
ny, nx = data.shape
fig = plt.figure()
ax = fig.add_subplot(111)
ax.imshow(data, interpolation='nearest', extent=[0.5, nx+0.5, ny+0.5, 0.5])
xticks = np.arange(nx)+1
yticks = np.arange(ny)+1
ax.set_xticks(xticks)
ax.set_yticks(yticks)
plt.show()