更改 Matplotlib.pyplot.imshow() 上的轴刻度以表示位置而不是像素

问题描述 投票:0回答:0

我正在尝试创建数据集的列密度图。数据包括已在网格上插值的粒子 3D 模拟结果。当我用 imshow() 绘图时,我在 x 和 y 轴上得到代表像素(从 0 到 512)的刻度。我的数据集在插值之前从 -0.5 扩展到 0.5。我怎样才能让 imshow 将刻度从 0-512 更改为 -0.5 到 0.5?我能找到的所有问题和答案都是为了改变刻度的频率或它们的布局,但没有改变整个轴来代表其他东西。

我运行的代码是:

import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt('pdf')
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
p=ax.imshow(np.log(data),extent=[-0.5,0.5],origin='lower')
cb = plt.colorbar(p,ticks=np.arange(np.amin(np.log(data)),np.amax(np.log(data)),2),aspect=15)
plt.show()
python matplotlib imshow xticks yticks
© www.soinside.com 2019 - 2024. All rights reserved.