Python/Matplotlib - カラーバーの範囲と表示値 質問する

Python/Matplotlib - カラーバーの範囲と表示値 質問する

等高線プロットで matplotlib を使用すると、カラーバーを希望どおりに表示できずに困っています。同様の例を多数読みましたが、まだ希望どおりの結果を得ることができていません。

下の画像では、2 つの点を変更したいと考えています。最小値と最大値をカラー バーに表示します (最大値は 2.0、最小値は -0.1 である必要があります)。これらの 2 つの値は、カラー バーの端にある必要があります。また、カラー バーには、すべての色の遷移で値が表示されるようにしたいと考えています。たとえば、下のプロットでは、2.1 と 1.8 の間に、値が表示されない別の色の遷移があります。

おそらく norm を使用する必要があると思いますが、今のところうまくいきません。

ここに画像の説明を入力してください

コード:

import numpy as np
import matplotlib.pyplot as plt

xi = np.array([0., 0.5, 1.0])
yi = np.array([0., 0.5, 1.0])
zi = np.array([[0., 1.0, 2.0],
               [0., 1.0, 2.0],
               [-0.1, 1.0, 2.0]])

plt.contour(xi, yi, zi, 15, linewidths=0.5, colors='k')
plt.contourf(xi, yi, zi, 15, cmap=plt.cm.jet)
plt.colorbar()
plt.show()

ベストアンサー1

あなたが何を望んでいるのか正しく理解していれば、次のようにすればいいと思います:

import numpy as np
import matplotlib.pyplot as plt

xi = np.array([0., 0.5, 1.0])
yi = np.array([0., 0.5, 1.0])
zi = np.array([[0., 1.0, 2.0],
               [0., 1.0, 2.0],
               [-0.1, 1.0, 2.0]])

v = np.linspace(-.1, 2.0, 15, endpoint=True)
plt.contour(xi, yi, zi, v, linewidths=0.5, colors='k')
plt.contourf(xi, yi, zi, v, cmap=plt.cm.jet)
x = plt.colorbar(ticks=v)
print x
plt.show()

ここに画像の説明を入力してください

おすすめ記事