我有一個 xarray 資料集,具有三個維度,包括緯度、經度和時間。時間維度是從 1 到 12 的 12 個值的月值。我想用月份名稱(例如“Jan”、“Feb”、“Mar”……)繪制此資料集的變數。如何在繪圖中將月份數更改為月份名稱?
<xarray.Dataset>
Dimensions: (month: 12, latitude: 501, longitude: 721)
Coordinates:
* longitude (longitude) float64 49.8 49.81 49.82 ... 56.99 57.0
* latitude (latitude) float64 27.0 27.01 27.02 ... 31.99 32.0
* month (month) int64 1 2 3 4 5 6 7 8 9 10 11 12
Data variables:
Sum_monthly_Rain_mm (month, latitude, longitude) float32 dask.array<chunksize=(1, 501, 721), meta=np.ndarray>
Tair_C (month, latitude, longitude) float32 dask.array<chunksize=(1, 501, 721), meta=np.ndarray>
情節:
temp_rain_mean_months.Tair_C.plot(x='longitude', y='latitude', col='month', col_wrap=4,
levels=[-10, -5, 0, 5, 10, 15, 20, 25, 30, 35, 40]);

uj5u.com熱心網友回復:
兩種方式...
您可以遍歷 da.plot 回傳的繪圖物件上的軸并手動設定標題:
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
p = da.groupby('time.month').mean(dim='time').plot(col='month', col_wrap=4)
for i, ax in enumerate(p.axes.flat):
current_title = ax.get_title()
assert current_title[:len('month = ')] == 'month = '
month_ind = int(current_title[len('month = '):]) - 1
ax.set_title(months[month_ind])
或者,您可以在繪圖之前修改陣列上的 dim:
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
da['month_name'] = ('month', months)
da.swap_dims({'month': 'month_name'}).Tair_C.plot(
x='longitude',
y='latitude',
col='month_name',
col_wrap=4,
levels=[-10, -5, 0, 5, 10, 15, 20, 25, 30, 35, 40],
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/359786.html
標籤:matplotlib 时间 标签 蟒蛇-xarray
上一篇:Matplotlib線圖圖例顯示了錯誤的線條顏色代碼
下一篇:如何向多個子圖添加附加圖
