Matplotlib设置坐标

时间:2015-04-03 07:43:07

标签: python matplotlib

我想将坐标从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)

enter image description here

1 个答案:

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

Result of this code