#matplotlib #scatter #cartopy
Вопрос:
Я пытаюсь сделать диаграмму рассеяния на карте с проекцией Робинсона. Однако полученная карта обрезана сбоку, и я не могу понять, почему. У меня не было никаких проблем при создании контурных графиков на аналогичных картах. Долгота и широта для точек, которые я хочу построить, хранятся в двух отдельных списках с плавающими точками (lon, lat), как это:
lon = [2,906250000000000000 e 02, 2,906250000000000000 e 02, 2,906250000000000000 e 02, …]
широта = [-5.315959537001968016 e 01, -5.129437713895114825 e 01,-4.942915369712304852 e 01, …]
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
fig_scale = 2
fig = plt.figure(figsize=(4*fig_scale,3*fig_scale))
gs1 = plt.GridSpec(2, 1,height_ratios=[1, 0.05])
axes = plt.subplot(gs1[0,0], projection=ccrs.Robinson(central_longitude=0.0))
mappab = plt.scatter(x=lon, y=lat,
transform=ccrs.PlateCarree())
axes.coastlines(color='grey')
axes.gridlines()
plt.show()
Комментарии:
1. Помогает ли метод set_global? scitools.org.uk/cartopy/docs/latest/reference/generated/…
2. Нужно
axes.set_global()
получить весь мировой сюжет.3. И не используйте
plt.scatter()
, ноaxes.scatter()
, чтобы избежать путаницы. У вас также есть еще один подзаголовок в соответствии с вашим GridSpec().4. Да, axes.set_global() делает именно то, что я хочу. Спасибо!