1

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 に答える