Matplotlib / basemap: построение линии с разными цветами на основе зависимых значений - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть набор широт / долгот, которые представляют центр урагана, и третий список скоростей ветра.Я пытаюсь представить ураган как линию, соединяющую широту / долготу, но окрашиваю линию в разные цвета, в зависимости от скорости ветра в этом месте.

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

Следующий код является базовым для построения всей линии зеленым цветом, но как новичок, у меня возникают проблемы с применением того, что яВы видели, как сегментов или в списке цветовой карты работают должным образом на форуме базовой карты.Возможно, потому что я не понимаю, как связать значения ветра с точками.(У меня есть ярды неправильного кода, пробующего это, так что я пропущу публикацию любого, потому что я запутался).Хотя я выложу перечисленную цветовую карту для справки.

Я собираюсь рисовать здесь только 20-30 точек, вершины, поэтому время и ресурсы не являются проблемой.

Я не в форме, пытаясь применить сегменты илицветовая карта в списке?Цени любую помощь!

map = Basemap(projection='merc',llcrnrlat=lowlat,urcrnrlat=highlat,llcrnrlon=leftlon,urcrnrlon=rightlon,lat_ts=30,resolution='i',area_thresh=10000)
map.drawmapboundary()
map.drawcoastlines(linewidth=0.50)
map.drawcountries(linewidth=0.25)
map.drawstates(linewidth=0.25)
map.drawmeridians(np.arange(0,360,10),labels=[0,0,0,1],fontsize=10)
map.drawparallels(np.arange(-90,90,10),labels=[1,0,0,0],fontsize=10)
plt.title(ensupper + ' Tropical Cyclone ' + storm +' ' + cyd + ' ' + cyc + 'UTC Cycle' )


lat = [33.7, 32.9, 32.1, 31.5, 31.0, 30.7, 30.5, 30.4, 30.0, 29.4, 29.6, 29.9, 29.7]
lon = [-27.1, -26.6, -26.6, -26.6, -26.9, -27.4, -28.0, -28.5, -28.9, -29.9, -30.9, -31.4, -32.3]
wind = [49, 44, 53, 60, 69, 77, 86, 85, 85, 74, 75, 62, 44]

x,y = map(lat,lon)
map.plot(x,y,color='green',linestyle='solid',linewidth=1, markersize=1)

cmap = ListedColormap(['black', 'saddlebrown', 'green', 'gold', 'darkorange', 'red', 'purple'])
norm = BoundaryNorm([0, 33, 64, 83, 95, 113, 134, 300], cmap.N)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...