Базовая карта: Карта участка, аналогичная домену WRF

Я хочу построить фигуру, похожую на домен WRF, как На следующем рисунке имея только прямоугольную рамку без какого-либо цвета внутри рамки домена. Но ближе всего я был

Эта фигура

со следующим кодом:-

from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
import pylab as P

def draw_screen_poly( lats, lons, m):
    x, y = m( lons, lats )
    xy = zip(x,y)
    poly = Polygon( xy,alpha=0.1,edgecolor='k',linewidth=1 )
    plt.gca().add_patch(poly)

lats = [ 26.1238,29.2537,29.2537,26.1238 ]
lons = [82.5228,82.5228, 87.2772,87.2772 ]

m = Basemap(llcrnrlon=80,llcrnrlat=25,urcrnrlon=90,urcrnrlat=30,
              projection='merc', lat_1=27.7,lat_2=60.,lat_0=27.69998,lon_0=85.3,resolution="h")
m.drawcoastlines()
m.drawmapboundary()
m.drawcountries(linewidth=1,color='k')
m.fillcontinents(color='g',lake_color='aqua')
parallels = np.arange(0.,90,1.)
m.drawparallels(parallels,labels=[1,0,0,0],color="gray",fontsize=10)
draw_screen_poly( lats, lons, m )
meridians = np.arange(0.,180.,1.)
m.drawmeridians(meridians,labels=[0,0,0,1],color="gray",fontsize=10)
fig = P.gcf()
P.show()
pngfile = "map_new_domain.pdf".format("avg")
fig.savefig(pngfile)

Как я могу отредактировать мой код, чтобы получить похожую фигуру?

1 ответ

Решение

Вам нужно установить facecolor Параметр объекта Polygon, задает цвет заливки. Я также удалил альфу, не нужную, если вы хотите сплошную линию без заливки.

poly = Polygon( xy, edgecolor='k', linewidth=2, facecolor='none')

введите описание изображения здесь

Другие вопросы по тегам