0

我是 seaborn 的新手,所以如果这是一个愚蠢的问题,请原谅......我计划使用 seaborn 来绘制我的空间数据(作为栅格数据)的多个方面。源数据来自 netcdf 文件...在导入和一些清理之后,我确实有一个以下列布局的 pandas 数据框:

lat lon value year
10  12  1.2   2010
10  13  1.1   2010
...
10  12  1.2   2011
...

如果我使用散点图,我可以获得一些视觉输出(我使用 cartopy 进行地理变换绘图):

import seaborn as sns
import cartopy
import cartopy.crs as ccrs
import xray

ds1 = xray.open_dataset("example1.nc")['value']
ds2 = xray.open_dataset("example2.nc")['value']  
df1 = ds1.to_dataframe()
df2 = ds2.to_dataframe()  
# make lat, lon regular cols  
df1.reset_index(inplace=True)  
df2.reset_index(inplace=True)  
# add a year column
df1['year'] = 2010  
df2['year'] = 2011  
# produce the final dataframe  
df = pd.concat( [df1, df2] )  

g = sns.FacetGrid(df, col="year", hue="value",
                  subplot_kws=dict(projection=ccrs.PlateCarree()), size=4.5,
                  sharex=False, sharey=False, despine=False)

g.map(plt.scatter, "lon", "lat", s=5, transform=ccrs.PlateCarree())
for ax in g.axes.ravel():
    ax.add_feature(cartopy.feature.COASTLINE)

但是,当我想绘制栅格数据时我迷路了......我想我应该使用 pandas.meshgrid、plot.contourf 和其他一些魔法,但我无法为我的生活弄清楚我是如何从 pandas 变成 faceted光栅图...

4

0 回答 0