如何更改一个轴上的数据?
我正在对一些数据进行一些频谱分析,我的 x 轴是一些矩阵的索引。我想改变它,使 x 轴成为数据本身。
我正在使用 imshow() 绘制数据(我有一个矩阵,其元素是一些强度,y 轴是它们的检测器-源对应对,x 轴应该是它们的频率)。
它的代码写在这里:
def pltspec(dOD, self):
idx = 0
b = plt.psd(dOD[:,idx],Fs=self.fs,NFFT=512)
B = np.zeros((2*len(self.Chan),len(b[0])))
for idx in range(2*len(self.Chan)):
b = plt.psd(dOD[:,idx],Fs=self.fs,NFFT=512)
B[idx,:] = 20*log10(b[0])
fig = plt.figure()
ax = fig.add_subplot(111)
plt.imshow(B, origin = 'lower')
plt.colorbar()
locs, labels = xticks(find(b[1]), b[1])
plt.axis('tight')
ax.xaxis.set_major_locator(MaxNLocator(5))
我认为如果有办法将某个数组的索引与其值交换,我的问题就会得到解决。
我设法使用了这条线locs, labels = xticks(find(b[1]), b[1])
。但是在我的图表上,我的轴间隔不正确......我认为它与 MaxNLocator (我用来减少滴答数)有关。
如果我使用 xlim,我可以将图形设置为我想要的,但是 x 轴仍然是相同的(在那个 xlim 上我必须使用原始数据来正确设置它)。
我究竟做错了什么?