Sey*_*avi 1 python matplotlib seaborn python-xarray
我正在尝试更改用于在 xarray 中制作构面网格的变量的顺序。例如,我将[a,b,c,d ] 作为列名称。我想将其重新排序为[c,d,a,b]。不幸的是,与seaborn不同,我无法在 xarray 绘图函数中找到 col_order 或 row_order 等参数(
\n\n\nhttps://xarray.pydata.org/en/stable/ generated/xarray.plot.FacetGrid.html
\n
更新: \n为了帮助自己更好地解释我需要什么,我从 xarray 的用户指南中获取了下面的示例:\n在下面的示例中,我需要更改月份的位置。我的意思是,例如,我想将第 7 个月作为第一列,将第 2 个月作为第 5 列,依此类推。
import matplotlib as mpl\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport xarray as xr\nds = xr.tutorial.open_dataset("air_temperature.nc").rename({"air": "Tair"})\n\n# we will add a gradient field with appropriate attributes\nds["dTdx"] = ds.Tair.differentiate("lon") / 110e3 / np.cos(ds.lat * np.pi / 180)\nds["dTdy"] = ds.Tair.differentiate("lat") / 105e3\nds.dTdx.attrs = {"long_name": "$\xe2\x88\x82T/\xe2\x88\x82x$", "units": "\xc2\xb0C/m"}\nds.dTdy.attrs = {"long_name": "$\xe2\x88\x82T/\xe2\x88\x82y$", "units": "\xc2\xb0C/m"}\nmonthly_means = ds.groupby("time.month").mean()\n# xarray\'s groupby reductions drop attributes. Let\'s assign them back so we get nice labels.\nmonthly_means.Tair.attrs = ds.Tair.attrs\nfg = monthly_means.Tair.plot(\n col="month",\n col_wrap=4, # each row has a maximum of 4 columns\n)\nplt.show()\nRun Code Online (Sandbox Code Playgroud)\n非常感谢任何帮助。
\nxarray 将尊重数据的形状,因此您可以在绘图之前重新排列数据:
In [2]: ds = xr.tutorial.open_dataset("air_temperature.nc")
In [3]: ds_mon = ds.groupby("time.month").mean()
In [4]: # order the data by month, descending
...: ds_mon.air.sel(month=list(range(12, 0, -1))).plot(
...: col="month", col_wrap=4,
...: )
Out[4]: <xarray.plot.facetgrid.FacetGrid at 0x16b9a7700>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
420 次 |
| 最近记录: |