【问题标题】:multiple plots in loop - basemap python循环中的多个图 - 底图python
【发布时间】:2018-12-19 00:03:10
【问题描述】:

我计算了某个时间段的月平均值,并希望生成 12 个图。在下面的代码中,我只尝试了 1 月和 2 月。我尝试循环执行所有操作都失败了。如何转换以下适合循环的 python 脚本?提前致谢。

在地图上绘制

lon, lat = np.meshgrid(lons, lats)

xi, yi = map(lon, lat)

fig, axes = plt.subplots(1, 2)

axes[0].set_title("January")
map = Basemap(110.,-45.,155,-9., ax=axes[0],
            lat_0=24.75, lon_0=134.0, lat_1=-10, lat_2=-40,
            rsphere=(6378137.00,6356752.3142),
            projection='cyl')
map.drawcoastlines()
map.drawstates()
map.drawlsmask(land_color='Linen', ocean_color='#CCFFFF')
map.drawcountries()

parallels = np.arange(-50,-10,5.) # make latitude lines ever 5 degrees from 30N-50N
meridians = np.arange(115,155,5.) # make longitude lines every 5 degrees from 95W to 70W
map.drawparallels(parallels,labels=[1,0,0,0],fontsize=8)
map.drawmeridians(meridians,labels=[0,0,0,1],fontsize=8)
monthly_mean_data1 = np.ma.masked_where(np.ma.getmask(var_mask), all_monthly_average[0])
plot=map.pcolor(xi,yi,monthly_mean_data1)
    
axes[1].set_title("February")
map = Basemap(110.,-45.,155,-9., ax=axes[1],
            lat_0=24.75, lon_0=134.0, lat_1=-10, lat_2=-40,
            rsphere=(6378137.00,6356752.3142),
            projection='cyl')
map.drawcoastlines()
map.drawstates()
map.drawlsmask(land_color='Linen', ocean_color='#CCFFFF')
map.drawcountries()

parallels = np.arange(-50,-10,5.) # make latitude lines ever 5 degrees from 30N-50N
meridians = np.arange(115,155,5.) # make longitude lines every 5 degrees from 95W to 70W
map.drawparallels(parallels,labels=[1,0,0,0],fontsize=8)
map.drawmeridians(meridians,labels=[0,0,0,1],fontsize=8)
monthly_mean_data2 = np.ma.masked_where(np.ma.getmask(var_mask), all_monthly_average[1])
plot=map.pcolor(xi,yi,monthly_mean_data2)
plt.show()

【问题讨论】:

  • 到底是什么问题?

标签: python numpy matplotlib-basemap


【解决方案1】:

谢谢!这是解决方案---

fig, axes = plt.subplots(1, 2)

axes = axes.ravel()

for i, Month in enumerate(['January', 'February']):
    map = Basemap(110.,-45.,155,-9., ax=axes[i],
            lat_0=24.75, lon_0=134.0, lat_1=-10, lat_2=-40,
            rsphere=(6378137.00,6356752.3142),
            projection='cyl')
    map.drawcoastlines()
    map.drawstates()
    map.drawlsmask(land_color='Linen', ocean_color='#CCFFFF')
    map.drawcountries()

    parallels = np.arange(-50,-10,5.) # make latitude lines ever 5 degrees from 30N-50N
    meridians = np.arange(115,155,5.) # make longitude lines every 5 degrees from 95W to 70W
    map.drawparallels(parallels,labels=[1,0,0,0],fontsize=8)
    map.drawmeridians(meridians,labels=[0,0,0,1],fontsize=8)
    monthly_mean_data= np.ma.masked_where(np.ma.getmask(var_mask), all_monthly_average[i])
    plot=map.pcolor(xi,yi,monthly_mean_data)
    axes[i].set_title(Month);

【讨论】:

    猜你喜欢
    • 2014-05-05
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多