2017-09-03 18 views
2

私はさまざまなミッションを比較しています。私はカラーバーに最大と最小を私に設定させたいと思います。私はこれをどうやって行うのか、このことについて何か助けてくれるのですか?ミッション自体はある範囲内にとどまりますが、私はそれを設定したいので、簡単に比較できます。いくつかのミッションは異なり、いくつかのarentので、私は最大と最小を自動的に設定するコンピュータをしたくないです。Cartopy用のカラーバーを私が設定した特定の範囲にするにはどうすればよいですか?

enter image description here

crs_latlon = ccrs.PlateCarree() 
def make_plot(projection_name, projection_crs): 

    ax = plt.axes(projection=projection_crs) 
    #ax.set_extent((-65.0, -58, 40, 47.7), crs=crs_latlon) 
    ax.set_extent((-65.0, -62, 43, 45.5), crs=crs_latlon) 

    #Add coastlines and meridians/parallels (Cartopy-specific). 
    plt.gca().coastlines('10m') 

    ax.gridlines(crs=crs_latlon, linestyle='-') 
    # Add a title, legend, and display. 
    ax.set_title(''.join(("Mission #13: Attenuation Coeffiecient - ", 
         projection_name))) 

    cb = plt.scatter(avglonlist, avglatlist, c=klist, cmap=coolwarm) 
    plt.colorbar(cb, cmap=coolwarm, orientation='vertical',ticklocation='auto') 
    #plt.colorbar.ColorbarBase(ax=ax, cmap = coolwarm, orientation='vertical', ticklocation='auto', 
    #      norm=plt.colors.Normalize(vmin=0, vmax=1)) 
    iplt.show() 

def main(): 
# Demonstrate with two different display projections. 
    make_plot('Equidistant Cylindrical', ccrs.PlateCarree()) 
    graph_my_latandk(avglatlist,klist) 

if __name__ == '__main__': 
    main() 
+2

コードをご提供いただきありがとうございます。それをテストするためにいくつかのデータを提供することは非常に便利です(あなたが〜10点などでそれを偽造したとしても)。 FWIWは、この質問に対する標準的なmatplotlibの正規化(すなわちcartopyに関連したものではない)に関するものです。 – pelson

答えて

3

私はあなたがここのようなあなたのown color barを作成する必要が推測:

import matplotlib.pylab as plt 
from matplotlib import colorbar, colors 

fig = plt.figure(figsize=(8, 3)) 
ax = fig.add_axes([.05, .05, .05, .7]) # position of colorbar 
cbar = colorbar.ColorbarBase(ax, cmap=plt.get_cmap('coolwarm'), 
    norm=colors.Normalize(vmin=-.5, vmax=1.5)) # set min, max of colorbar 
cbar.set_clim(-.5, .5) # set limits of color map 
plt.show() 

vmin, vmaxカラーバーの制限を設定することができますが、climは、カラーマップの制限を設定することができます。

0

vminとvmaxを渡すと、散布図の色範囲を設定することができ、それに応じて色バーが設定されます。

cb = plt.scatter(avglonlist, avglatlist, c=klist, cmap=coolwarm, vmin=-4, vmax=2) 
plt.colorbar(cb, cmap=coolwarm, orientation='vertical',ticklocation='auto') 
関連する問題