2016-08-25 41 views
1

私は等高線図にデータをプロットしています。計算は変換された値に作用するので、元の値に戻す必要があります。コードの4行目は、再翻訳プロセスです。 しかし、私がプロットすると、カラーバーに相対値が表示され、カラーバーの上部にシフト値が表示されます。行列の値をチェックして元の値が入っているのは単なる奇妙なことです。元の値が表示されてMatplotlib等高線マップカラーバー

enter image description here

は、どのように私は、カラーバーを表示することができますか?

fig=plt.figure() 
v=np.linspace(-180,180,25) 
x,y = np.meshgrid(v,v) 
z = np.add(z,-shift) 
z = z.reshape(25,25).T 
plt.contourf(x,y,z,25) 
fig.suptitle(AA(prefix)+' Input Data Contour Map') 
plt.xlabel('$\phi$ (deg)') 
plt.ylabel('$\psi$ (deg)') 
plt.xticks(np.arange(-180, 181, 30)) 
plt.yticks(np.arange(-180, 181, 30))         
plt.colorbar() 

UPDATE:私はlabelsは、カスタムラベルのリストである一時的な修正のためのset_ticklabelsを()を使用。

しかし、私はまだこの問題を解決するより良い方法を探しています。

plt.colorbar().set_ticklabels(labels) 

updated contour map

+0

あなたが持っている値を使って、私はあなたがそうすることができない、あるいはそうでないことを推測しています。シフトは変動より約5桁大きいので、実際の値を印刷することは、他の誰かが解釈するのを困難にするでしょう。 – Elliot

+0

@Elliot私は実際の値が多くの問題だとは思わない。上記のアップデートに示されているように、この問題の一時的な解決策を作成しました。 – jjv

答えて

1

matplotlibのは、あなたのshift変数について知っていません。それは、あなたが視覚化しようとしている変更がバックグラウンド値の10 ^( - 6)なので、それをプロットすることを選択しています。

あなたは、彼らがthis pylab exampleにそうであるように使用して特定の場所で目盛りを持っているカラーバーを強制することができます。

cbar = fig.colorbar(cax, ticks=[-1, 0, 1]) 
cbar.ax.set_yticklabels(['< -1', '0', '> 1']) # vertically oriented colorbar 

しかし、そうすることは読み規模が非常に困難になります。

+0

plottingコマンドの前に 'z'変数の値をチェックして元の値が入っているのではないかと疑問に思っていますので、matplotlibのプロットの問題です。 – jjv

関連する問題