0

Pythonでは、2D配列があります。例:

1.3 5.7 3.2 5.6 2.3 9.5 1.1 4.1 5.2

次に、「imshow」を使用して必要なものを取得しました。基本的に、x軸が次のプロットを持っていました:(列)0(列)1(列)2...。

y軸は次のとおりです。。(行)2(行)1(行)0

そして、実際の値(5.6または2.3など)は色で表されました。これはまさに私が望んでいたことでした。

しかし後で、x軸が列0の列1と列2などである代わりに、x軸に列0の列1と列2などに対応する日付を表示したかったのです。この情報は別の場所に保存されました。リスト、「date_info[]」と言います。

したがって、下部の任意のインデックススキームの代わりに、imshowのx値をdate_info []リストの値に対応させる必要があります。たとえば、数値2の代わりに、x軸にdate_info[2]が必要です。

今、このフォーラムの助けを借りて、私はこれを使用してこれを行うことができました:

plt.xticks(mjdaxis,[int(np.floor(data_info[i])) for i in mjdaxis])

しばらくはこれで十分でしたが、ここでx軸のラベルを変更しているだけですよね?プロットされているものではなく。元のプロットの上にもう1つのプロット(通常の曲線)を配置しようとすると、x軸のスケーリングが台無しになり、代わりに列が(1,2,3 ...)として再び束ねられます。対応するdate_info値(55500、55530、55574 ...)

誰かが私が言っていることを理解できれば、それは素晴らしいことです!!

参考までに、私が今試しているコードは次のとおりです。

fig = plt.figure()
ax1 = fig.add_subplot(111)
mjdaxis=np.linspace(0,date_info[0]-1,20).astype('int')
ax1.set_xticks(mjdaxis,[int(np.floor(date_info[i])) for i in mjdaxis])
ax1.imshow(residuals, aspect="auto")

ax2 = ax1.twinx()
ax2.plot(pdot[8:,0],pdot[8:,1])

plt.show()
4

1 に答える 1

0

私があなたを正しく理解していれば、あなたのax2.set_xticks([])前に行を追加するだけでよいはずplt.show()です。また、 kwarg を読みたいと思うかもしれませんhold

于 2012-09-18T07:48:06.407 に答える