1

如何更改一个轴上的数据?

我正在对一些数据进行一些频谱分析,我的 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 上我必须使用原始数据来正确设置它)。

我究竟做错了什么?

4

1 回答 1

2

是的,您可以使用本例中举例xticks说明的方法。

还有更复杂的方法来做到这一点。见股票代码

于 2011-07-19T18:19:19.307 回答