6

matplotlib ライブラリを使用して、Python でカラーバーをプロットしようとしています。プロットはうまく機能しますが、カラー バーにはカラー バーの最後の目盛りが表示されません。

次のコマンドを使用すると、カラーバーが適切にプロットされますが、目盛りは -1.6 から +1.6 の範囲しかありません (上下の目盛りはありません)。私のデータの範囲は -2 から +2 です。

fig.colorbar(surf, shrink=1, aspect=12)

これを次の図に示します。

カラーバー

コマンドを使用してみました:

cbar.set_ticks([-2,-1,0,1,2]);

しかし、それも正しい結果を得ることができませんでした。

アップデート:

ticks=[-2,0,2] パラメータを使用してみましたが、うまくいきませんでした。これは私のプロットコードのスニペットです:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
CHI = np.linspace(-45, 45, 35);
M = np.linspace(0, 1, 35)
CHI, M = np.meshgrid(CHI, M)
R = 2*M*np.sin(  2 * np.deg2rad(CHI) )
surf = ax.plot_surface(CHI, M, R, rstride=1, cstride=1, cmap=cm.hsv,linewidth=0, antialiased=False)
ax.set_xlim(-45,45)
cbar = plt.colorbar(surf, shrink=1, aspect=12, ticks=[-2,-1,0,1,2])
plt.show()

これにより、次のプロットが生成されます。 間違ったバーをプロット

ご覧のとおり、カラーバーには終了の目盛りがありません。-2 と 2

4

2 に答える 2

5

ticksを呼び出すときにパラメーターを設定できるはずですplt.colorbar

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
cmap = plt.get_cmap('jet')
data = np.random.randint(-2,3, size=(10,10))
im = ax.imshow(data, interpolation='nearest', cmap=cmap)
cbar = plt.colorbar(im, ticks=[-2,-1,0,1,2])
plt.show()

ここに画像の説明を入力

于 2013-07-26T13:43:30.783 に答える