web-dev-qa-db-ja.com

Python / Matplotlib-カラーバーの範囲と表示値

等高線プロットでmatplotlibを使用すると、カラーバーを希望どおりに表示できません。私は多くの同様の例を読みましたが、まだ欲しいものを手に入れることができませんでした。

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

誰でも助けてくれますか?私は標準を使用する必要があるかもしれないと思いますが、今のところうまくいきませんでした。

おかげで、

enter image description here

コード:

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()
28
Scott B

あなたが望むものを正しく理解していれば、これはそれを行うべきだと思います:

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()

enter image description here

37
tom10