我正在尝试创建数据集的列密度图。数据包括已在网格上插值的粒子 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()