温度のコンター図のカラーバーの範囲と色を指定したい

温度のコンター図を作成したのですが、カラーバーの範囲がデフォルトだと、5刻みになっているので、これを2刻みずつにし、さらに2刻み毎に色を変えるために、以下のプログラムを書きましたが、カラーバーの刻みは5のままで、色も指定したものが全部使われていません。

具体的には、
デフォルトでは、カラーバーの数値は(870、875、880、・・・、905、910)
となっており、これを(870、872、874、・・・、904、906、908)としたいです。(また、図の色も刻み毎に変えていきたいので、合計19色が使われるはずです。)

しかし、以下のプログラムでは、カラーバーの数値の範囲も変わらないし、色も全て使われておらず、欲しい結果が得られません。
正しいやり方を教えていただきたいです。

↓カラーバーの範囲と色を指定したプログラムです。
from matplotlib.colors import Normalize
from matplotlib.colors import ListedColormap
import matplotlib as mpl

p2 = np.loadtxt('itiyou_Tt.csv',delimiter=',') #このcsvファイルに温度データが入っています

yy,zz = [],[]
y = p2[0,:]
z = p2[:,0]
y = y[1:]
z = z[1:]

for num in range(len(z)):
yy.append(y)
for num in range(len(y)):
zz.append(z)
X = np.array(yy)
Y = np.array(zz).T

p2 = np.delete(p2,0,1)
p2 = np.delete(p2,0,0)

#cmapで色の指定を、#boundsで数値の刻みの指定をしているつもりです
cmap = mpl.colors.ListedColormap(['navy','blue','royalblue','deepskyblue','darkviolet','mediumpurple','cyan','aquamarine','lightgreen','springgreen','palegoldenrod','papayawhip','peachpuff','gold','orange','darkorange','salmon','orangered','red'])
bounds = [870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
vmin, vmax = min(bounds), max(bounds)

plt.contourf(Y,X,p2,cmap=cmap,norm=norm)
plt.clim(870, 908)
plt.colorbar()
plt.show()
plt.xlim([0,100])
plt.ylim([-100,100])

コメントを投稿

0 コメント