несколько графиков в цикле - Python базовой карты - PullRequest
0 голосов
/ 19 декабря 2018

Я рассчитал среднемесячное значение за некоторый период времени и хочу создать 12 графиков.В следующем коде я пробовал только в январе и феврале.Моя попытка сделать все в цикле не удалась.Как я могу преобразовать следующий скрипт 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()

1 Ответ

0 голосов
/ 19 декабря 2018

Спасибо!Вот решение ---

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);
...