如何更改一个轴上的数据?
我正在对一些数据进行一些频谱分析,而我的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上我必须使用原始数据来设置它)。
我做错了什么?