2013-06-24 3 views
4

Мне нужно сделать участок с n количеством базовых подплат. Но когда я делаю это, все значения отображаются на первом подзаголовке.Проблема с базовыми подзаголовками

Мои данные представляют собой набор матриц 'n', хранящихся в data_all.

f, map = plt.subplots(n,sharex=True, sharey=True, figsize=(20,17)) 

plt.subplots_adjust(left=None, bottom=None, right=None, top=None, 
        wspace=None, hspace=0.) 

for i in range(n): 
    map = Basemap(projection='merc', lat_0=0, lon_0=180, 
        resolution='h', area_thresh=0.1, 
        llcrnrlon=0, llcrnrlat=-45, 
        urcrnrlon=360, urcrnrlat=45) 
    map.drawcoastlines(linewidth=0.5) 
    map.drawmapboundary() 
    map.drawmapboundary() 
    nx = data_all.shape[0] 
    ny = data_all.shape[1] 
    lon, lat = map.makegrid(ny[i], nx[i]) 
    z,y = map(lon, lat) 
    cs = map.contourf(z, y, data_all[i]) 
+3

Только примечание: 'map' является [встроенной функцией Python] (http://docs.python.org/2/library/ functions.html # карта). Установка переменной с этим именем неизбежно вызывает путаницу. –

+0

См. Http://stackoverflow.com/questions/14254379/how-can-i-attach-a-pyplot-function-to-a-figure-instance/14261698#14261698 для разницы между интерфейсом OO и конечным автоматом – tacaswell

ответ

10

Я не могу проверить это в данный момент, но в основном вам просто нужно указать базовую карту, какие оси использовать.

Например:

import matplotlib.pyplot as plt 
from mpl_toolkits.basemap import Basemap 

fig, axes = plt.subplots(nrows=4, ncols=3) 
for ax in axes.flat: 
    map_ax = Basemap(ax=ax) 
    map_ax.drawcoastlines() 
plt.show() 

enter image description here

+0

Hii thanks для ответа. Но моя настоящая проблема возникает, когда я пытаюсь использовать один и тот же код ... с увеличением размера фигуры и подзаголовками только в строках и увеличенным числом 13. Их сюжет близок к размеру. – Nidhi

+0

Hii спасибо за ответ. Но моя настоящая проблема возникает, когда я пытаюсь использовать тот же код ... с увеличением размера фигуры, скажем, 13 или более подзаговоров в строках. Их сюжет заштрихован по размеру. импорта matplotlib.pyplot, как PLT из mpl_toolkits.basemap импорта BaseMap инжира, оси = plt.subplots (13, figsize = (10,15)) для ножа в axes.flat: map_ax = Базовая карта (ах = ах, проекция = 'Merc', lat_0 = 0, lon_0 = 120, разрешение = 'H', area_thresh = 10000, llcrnrlon = 60, llcrnrlat = -20, urcrnrlon = 180, urcrnrlat = 20) map_ax.drawcoastlines () plt.show() Однако он отлично работает с 1-2 подзаговорами. – Nidhi