0

Pythonでcontourf-plotを作成し、カラーバーの制限を設定する際に問題があります。

色のスケーリングが正しくなるように設定しましたが、使用されている部分だけが描かれています。

私のコードは次のようになります。

import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt("./somefancyasciifile")
xAxisScale = np.linspace(0.0, 80, len(data[0,:]))
yAxisScale = np.linspace(0.0, 80, len(data[0,:]))

fig = plt.figure(figsize = (16, 9), dpi = 100)
ax = fig.add_subplot(111 )
image = ax.contourf(xAxisScale, yAxisScale, data, 51,vmax = 1.0, vmin = 0.0)
colorbar = fig.colorbar(image, ticks = [0.0, 0.5, 1.0])

plt.show()

デフォルトのカラースケールは、ディープ ブルーが 0.0、レッドが 1.0 になるように正しく調整されています。私の最小値は 0.45 のようなもので、最大値は 1.0 を少し下回っています。色は希望どおりに正しく調整されていますが、カラーバー自体の範囲は最小値から最大値までしかありません。ただし、バーに 0.0 から 1.0 までの範囲全体を対応する色で表示したいと考えています。

4

1 に答える 1

1

これは、 と をオーバーライドして、入力配列に基づいて 51 レベルの輪郭を描くように設定しているためN = 51です。別の方法として、次のキーワードを使用してレベルを 0 から 1 の範囲全体に設定することもできます。vminvmaxlevels

import numpy as np
import matplotlib.pyplot as plt

data = np.random.rand(10,10)*0.6+0.4 # data ranging from 0.4 to 1

xAxisScale = np.linspace(0.0, 80, len(data[0,:]))
yAxisScale = np.linspace(0.0, 80, len(data[0,:]))

fig = plt.figure(figsize = (16, 9), dpi = 100)
ax = fig.add_subplot(111 )
image = ax.contourf(xAxisScale, yAxisScale, data,levels=np.arange(0,1.01,0.01),vmin = 0.0,vmax=1.0)
colorbar = fig.colorbar(image, ticks = [0.0, 0.5, 1.0])

plt.show()

ここに画像の説明を入力

于 2015-08-26T16:50:07.220 に答える