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では、元のデータを使用して正しく設定する必要がありました)。
私は何が間違っているのですか?