更改图表的轴值
我该如何更改一个轴上的数据呢?
我正在对一些数据进行光谱分析,我的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中,我必须用原始数据来正确设置它)。
我哪里做错了呢?