[英]Python - Plot with pcolormesh and basemap
例如,我想用立體投影繪制我的數據。 但是,當我嘗試繪制時,除了大陸之外沒有繪制任何內容。
為了解釋一下,這是我的數據圖的一個數字:
plt.pcolormesh(longrid_t, latgrid_t,totvart_t)
其中longrid_t
是經度, latgrid_t
是緯度, totvart_t
是我想要繪制的數據。
這是僅使用 pcolormesh(無底圖)作為plt.pcolormesh(longrid_t, latgrid_t,totvart_t)
繪制的圖:
現在,我嘗試使用立體投影繪制這些數據:
map = Basemap(width=10000000,height=6000000, resolution='l',projection='stere',
lat_0=40.,lon_0=-40.)
map.fillcontinents(color='darkgrey',lake_color='darkgrey')
map.drawcoastlines()
map.drawparallels(arange(-90, 91., 10.), labels=[1, 0, 0, 1],
dashes=[1, 1], linewidth=0.25, color='0.5')
map.drawmeridians(arange(-180., 181., 10.), labels=[1, 0, 0, 1],
dashes=[1, 1], linewidth=0.25, color='0.5')
map.pcolormesh(longrid_t, latgrid_t, totvart_t, cmap='jet')
map.colorbar()
然而,這個立體投影的結果並不是我所期望的:
我也嘗試過其他預測。 並且還使用 pcolor 和 contourf 而不是 pcolormesh。 但它給了我同樣的結果。
你有想法嗎?
您必須將坐標數據轉換為投影 xy 坐標,然后使用轉換后的坐標進行繪圖:
map = Basemap(width=10000000,height=6000000, resolution='l',projection='stere',
lat_0=40.,lon_0=-40.)
map.fillcontinents(color='darkgrey',lake_color='darkgrey')
map.drawcoastlines()
map.drawparallels(arange(-90, 91., 10.), labels=[1, 0, 0, 1],
dashes=[1, 1], linewidth=0.25, color='0.5')
map.drawmeridians(arange(-180., 181., 10.), labels=[1, 0, 0, 1],
dashes=[1, 1], linewidth=0.25, color='0.5')
# convert lat-lon to projection coordinate system
xpt,ypt = m(longrid_t, latgrid_t) # convert to projection map
map.pcolormesh(xpt, ypt, totvart_t, cmap='jet')
map.colorbar()
它可以將latlon=True
kwarg 添加到我對map.pcolormesh
調用中
因此
map.pcolormesh(longrid_t, latgrid_t, totvart_t, cmap='jet',latlon=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.