前提・実現したいこと
basemapで海域をmeshgridで分割し、その1つ1つの場所に読み込んだcsvの値を入れ、大きさごとに色付けしようと考えています。
発生している問題・エラーメッセージ
値の大きさが一定以上の部分はなぜか色がつかず、最初に指定した海の色である白のままになってしまいます。
該当のソースコード
import pandas as pd import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap import matplotlib.cm as cm #対象海域の緯度経度 lat_min=35.03 lat_max=35.45 lon_left=139.65 lon_right=139.85 #地図の作成 fig = plt.figure(figsize=(8,8)) m=Basemap(resolution='h',llcrnrlat=lat_min,urcrnrlat=lat_max,llcrnrlon=lon_left,urcrnrlon=lon_right) #海岸線 m.drawcoastlines() #大陸と海の色 m.fillcontinents(color='coral', lake_color='aqua') m.drawmapboundary(fill_color='white') # 緯度・経度の範囲/単位を取得 lats = np.linspace(lat_min, lat_max, 125) lons = np.linspace(lon_left, lon_right, 60) # グリッドデータに変換 x, y = np.meshgrid(lons, lats) data=pd.read_csv("bmap_Tokyowan_Overtaking.csv",encoding="shift-jis") # Basemap用のデータに変換 x, y = m(x, y) # 等高線を描く cmap=cm.jet cmap.set_over('black') levels=[0,0.002,0.004,0.006,0.008,0.01,0.012,0.014,0.016,0.018,0.02,0.03] cs=m.contourf(x, y, data,levels,cmap=cmap) #カラーバーを描く cbar = m.colorbar(cs,location='right',size='2%',pad="5%",extend='both') cbar.set_label('/day')
試したこと
cmap.set_over('black')でラベルの最大を越えた値は黒くするように設定したのですが変わりませんでした。
補足情報(FW/ツールのバージョンなど)
読み込んだcsvの中には125×60個のデータが入っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/28 06:30