35

等高線図でmatplotlibを使用すると、カラーバーを希望どおりに表示できません。私は多くの同様の例を読みましたが、それでも私が望むものを得ることができませんでした。

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

誰か助けてくれませんか?ノルムを使う必要があるかもしれませんが、今のところうまくいきません。

ありがとう、

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

コード:

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

1 に答える 1

45

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

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

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

于 2011-04-29T01:26:56.820 に答える