Базовая карта, изображающая контурную фигуру над береговыми линиями - PullRequest
0 голосов
/ 19 октября 2018

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

Xa = np.linspace(-93.6683,-93.2683,25)
Ya = np.linspace(29.005,29.405,25)
plt.figure()
m = Basemap(width=1200000,height=900000,projection='lcc',resolution='f',lat_1=29.205,lat_2=29.5,lat_0=29.205,lon_0=-93,4683)
m.drawcoastlines()
plt.contourf(Ya,Xa,Result.reshape(len(Xa),len(Ya)))
plt.colorbar()
plt.show()

Результатом в коде являются концентрации, которые изображены в виде контура.Я бы добавил их, но есть 625 значений для концентрации при запуске моего кода.Мне интересно, как я могу написать графическую часть моего кода, чтобы иметь возможность накладывать два графика.Спасибо!

1 Ответ

0 голосов
/ 21 октября 2018

Вы бы хотели использовать здесь контурную функцию базовой карты.Это, однако, имеет некоторые особенности.

  • В качестве входных данных принимаются только двумерные массивы. Это означает, что сначала необходимо создать сетку координат.

  • и входные данные должны быть отображенными координатами, x,y = m(X,Y)

Также обратите внимание на размеры.Первое измерение массива numpy - это ось y, второе измерение - ось x.

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


Xa = np.linspace(-93.6683,-93.2683,25)
Ya = np.linspace(29.005,29.405,25)
X,Y = np.meshgrid(Xa,Ya)
Result = np.random.rand(len(Ya)*len(Xa))


m = Basemap(width=1200000,height=900000,projection='lcc',resolution='c',
            lat_1=29.205,lat_2=29.5,lat_0=29.205,lon_0=-93.4683)
m.drawcoastlines()

mx,my = m(X,Y)
m.contourf(mx,my,Result.reshape(len(Ya),len(Xa)))
plt.colorbar()
plt.show()

enter image description here

...