2016-09-12 12 views
0

問題Matplotlib-最大値と最小値に向かってカラー塗りつぶしバイアスを設定する方法は?

私は地震カラーマップ(中央の白W /青、赤&)を使用しているに近い値の最もいずれか-1または1を持つ2つの変数の相関のプロットを持っていますほとんどのプロットは暗い青色(-1に近い)または暗い赤色(1に近い)のいずれかであり、最小値&最大値の近くにはほとんど詳細が示されていません。

コード

ここで私はプロットするために使用されるコードのブロックです。

#Set variables 
lonlabels = ['0','45E','90E','135E','180','135W','90W','45W','0'] 
latlabels = ['90S','60S','30S','Eq.','30N','60N','90N'] 
bounds = np.array([-1.0,-0.8,-0.6,-0.4,-0.2,0,0.2,0.4,0.6,0.8,1.0]) 

#Create basemap 
fig,ax = plt.subplots(figsize=(15.,10.)) 
m = Basemap(projection='cyl',llcrnrlat=-90,urcrnrlat=90,llcrnrlon=0,urcrnrlon=360.,lon_0=180.,resolution='c') 
m.drawcoastlines(linewidth=1,color='w') 
m.drawcountries(linewidth=1,color='w') 
m.drawparallels(np.arange(-90,90,30.),linewidth=0.3) 
m.drawmeridians(np.arange(-180.,180.,45.),linewidth=0.3) 
meshlon,meshlat = np.meshgrid(lon,lat) 
x,y = m(meshlon,meshlat) 

#Plot variable 
corre = m.pcolormesh(x,y,corrcoef,cmap='seismic', shading='gouraud',vmin=-1.0,vmax=1.0) 

#Set titles & labels 
#Colorbar 
cbar = m.colorbar(corre,size="8%",ticks=bounds,location='bottom',pad=0.8) 
cbar.set_label(label='Correlation Coefficient',size=25) 
cbar.set_ticklabels(bounds) 
for t in cbar.ax.get_xticklabels(): 
    t.set_fontsize(25) 
#Titles 
fig.suptitle('Correlation of Local Precipitation to Global (CanESM2)',fontsize=30,x=0.51,y=0.92) 
ax.set_xlabel('Longitude',fontsize=25) 
ax.set_xticks(np.arange(0, 405,45)) 
ax.set_xticklabels(lonlabels,fontsize=20) 
ax.set_ylabel('Latitude', fontsize=25) 
ax.set_yticks(np.arange(-90,120,30)) 
ax.set_yticklabels(latlabels,fontsize=20) 

次に、それが生成するプロットを示します。

enter image description here

質問

私はカラーマップの中央部には、-0.9〜0.9の範囲を言うように、色の塗りスキームを調整したい

は、ほとんど休憩のように(圧縮され 色の塗りつぶしは端の値をよりよく定義します。どうやってやるの?対称な対数分布のように、中間値の代わりに最大&分に偏っています。

答えて

1

あなたはカラーマッピングのスケールを変更するためにpcolormeshで使用できるキーワード引数規範があります。このためにmatplotlib documentationを見てください。そして、パラメータlinthreshを使用して中間範囲を変更することができます。 私はそれを試していないが、私はあなたの問題を解決するかもしれないと思う。

+0

ああ、それは動作します!私はちょうどlinthreshだけでなく、linscaleを使用して中間の値を圧縮する必要がありました。さもなければ、linscaleのないlinthreshは代わりにmax&minの方に値を圧縮します。私は数字で少し遊ばなければなりませんが、効果は私が探していたものです。ありがとう! – ChristineB

+0

私はそれが助けてうれしいです:-) – MaSdra

関連する問題