私はpythonとmatplotlibの新しいユーザーです。これは簡単な質問かもしれませんが、インターネットを何時間も検索しましたが、これに対する解決策が見つかりませんでした.
NetCDF 形式の降水量データをプロットしています。私が奇妙だと思うのは、データに負の値が含まれていないことです(念のために何度もチェックしました)。ただし、カラーバーの値は負の値 (-0.0000312 など) で始まります。大きなファイルからデータの一部を選択してプロットするだけで、データを操作しないので意味がありません。
したがって、私のコードはあまり関係ありません。コードは次のとおりです。
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
from netCDF4 import Dataset
cd progs
f=Dataset('V21_GPCP.1979-2009.nc')
lats=f.variables['lat'][:]
lons=f.variables['lon'][:]
prec=f.variables['PREC'][:]
la=lats[31:52]
lo=lons[18:83]
pre=prec[0,31:52,18:83]
m = Basemap(width=06.e6,height=05.e6,projection='gnom',lat_0=15.,lon_0=80.)
x, y = m(*np.meshgrid(lo,la))
m.drawcoastlines()
m.drawmapboundary(fill_color='lightblue')
m.drawparallels(np.arange(-90.,120.,5.),labels=[1,0,0,0])
m.drawmeridians(np.arange(0.,420.,5.),labels=[0,0,0,1])
cs=m.contourf(x,y,pre,50,cmap=plt.cm.jet)
plt.colorbar()
そのコードで得た出力は美しいプロットで、カラーバーは値 -0.00001893 から始まり、残りは正の値であり、正しいと思います。それは私を悩ませている最小値です。
私が知りたいのですが:
- 私のコードに何か問題がありますか? データが正しいことはわかっています。
- 値を手動で 0 に変更する方法はありますか?
- コードを実行するたびにカラーバーの値が変わるのは正しいですか、同じデータのcos、次にコードを実行するとき、値は次のようになります「-0.00001893、2.00000000、4.00000000、6.00000000など」
- それらを「0.0、2.0、4.0、6.0など」にカスタマイズしたい
ありがとう、ヴァイシュ