日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

問題內(nèi)容

我有一個名為 dens 的 xarray 數(shù)據(jù)集,我想繪制它。

這是數(shù)據(jù)集:

dimensions:  (time: 641, lat: 30, lon: 30)
coordinates:
  * time     (time) datetime64[ns] 2013-07-01t12:00:00 ... 2013-08-02t12:00:00
  * lon      (lon) float64 32.73 32.83 32.94 33.05 ... 35.53 35.64 35.75 35.85
  * lat      (lat) float64 31.08 31.27 31.47 31.66 ... 36.06 36.25 36.44 36.63
data variables:
    density  (time, lat, lon) float64 2e+03 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0

登錄后復(fù)制

我正在使用命令

plt.contourf(dens.density.values[-1,:,:]);

登錄后復(fù)制

繪制它并且它正在工作,但由于我希望海岸線也繪制在繪圖上,所以我也嘗試使用

m = basemap(llcrnrlon=data['lon'].min(), llcrnrlat=data['lat'].min(),
                urcrnrlon=data['lon'].max(), urcrnrlat=data['lat'].max(), resolution='i', suppress_ticks=1)
m.drawcoastlines();
m.fillcontinents(color='gray',lake_color='gray');

登錄后復(fù)制

但是當我運行所有命令,然后運行 ??plt.show() 時,等高線圖消失,它向我顯示的只是海岸線。

如何解決此問題以獲得同一圖中的等高線圖+海岸線圖?

抱歉,如果這是一個愚蠢的問題,但我對 python 還很陌生

感謝您的幫助,

尤塔姆

編輯:我現(xiàn)在才意識到我正在嘗試組合兩個不同的“工具包”,并且有可能僅使用底圖工具包來完成所有這些操作,但只是嘗試寫

m.contourf(dens.density.values[-1,:,:]);

登錄后復(fù)制

給我這個錯誤:

---------------------------------------------------------------------------
typeerror                                 traceback (most recent call last)
cell in[21], line 1
----> 1 m.contourf(dens.density.values[-1,:,:])

typeerror: basemap.contourf() missing 2 required positional arguments: 'y' and 'data'

登錄后復(fù)制

另一個編輯:我不斷發(fā)現(xiàn)更多的東西,在閱讀了 basemap 的文檔后,我意識到命令的語法應(yīng)該是這樣的

m.contourf(dens.lon.values,dens.lat.values,dens.密度.values[-1,:,:]);

但現(xiàn)在我收到此錯誤:

IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

登錄后復(fù)制

我猜這是因為我的密度數(shù)組是二維的,但是如何從中提取密度值?我在時間維度中使用 [-1],因為我實際上只需要最后一個時間步

再次提前致謝,
約塔姆

最后編輯

這是最終的情節(jié),我怎樣才能讓周圍的土地變成灰色而不是紫色?另外,有沒有一種方法可以描述更大的地理區(qū)域,稍微大一點,而不弄亂數(shù)據(jù)?

這是我的實際數(shù)據(jù)的新數(shù)字

正確答案

使用底圖和 xarray 進行繪圖已在此處進行了討論.

m = basemap(llcrnrlon=data['lon'].min(), llcrnrlat=data['lat'].min(),
            urcrnrlon=data['lon'].max(), urcrnrlat=data['lat'].max(), 
  resolution='i', suppress_ticks=1)
m.drawcoastlines();
m.fillcontinents(color='gray',lake_color='gray')
dens.density[-1,:,:].plot.contourf()
plt.show()

登錄后復(fù)制

上面的代碼應(yīng)該可以工作。
我使用 cartopy 來處理海岸線和邊界等功能。下面是可供您嘗試使用數(shù)據(jù)集的工作代碼片段。

import xarray as xr
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cf

ds = xr.open_dataset('filename.nc')
fig = plt.figure(figsize=(8,8))
crs=ccrs.platecarree()
ax = fig.add_subplot(1,1,1, projection=crs)
gl = ax.gridlines(crs=crs, draw_labels=true,
                linewidth=0.01, color='gray', alpha=0.5, linestyle='-.')

ax.add_feature(cf.coastline.with_scale("50m"), lw=0.5)
ax.add_feature(cf.borders.with_scale("50m"), lw=0.3)

ds.density[-1,:,:].plot.contourf()
plt.show()

登錄后復(fù)制

最后一次編輯

要將所有紫色(零)設(shè)置為白色,您可以使用以下 cmap。

from matplotlib.colors import LinearSegmentedColormap
cm = LinearSegmentedColormap.from_list('', ['white', *plt.cm.Blues(np.arange(255))])
ds.density[-1,:,:].plot.contourf(cmap=cm)

登錄后復(fù)制

分享到:
標簽:overflow
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定