Я играю с картопи, пытаясь понять, как это работает.Первое, что я попробовал, было очень похоже на пример в документах в разделе «Добавление данных на карту».
Я пытаюсь нарисовать прямую линию из Аделаиды, Австралияв Ливерпуль, Великобритания, по моей проекции Робинсона.Это мой код:
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
ax = plt.axes(projection=ccrs.Robinson())
ax.coastlines()
ax.stock_img()
ad_lat, ad_lon = -34.93, 138.60
liv_lat, liv_lon = 53.41, -2.99
plt.plot([ad_lon, liv_lon], [ad_lat, liv_lat],
color='blue', linewidth=1, marker='o', markersize=3,
)
plt.show()
Однако в результате на карте появляется один маркер.В документах сказано, что по умолчанию, если вы не укажете свойство transform для plt.plot, оно использует свойство для осей (в данном случае Робинзона).Когда я явно добавляю 'transform = ccrs.Robinson ()', происходит то же самое.Тем не менее, он позволяет мне использовать «ccrs.Geodetic ()» для изогнутой линии или ccrs.PlateCarree () для слегка шаткой прямой линии.
Я не могу найти ничего в документах о преобразованиисобственность ограничена одними проекциями, но не другими, поэтому я не понимаю, почему это происходит.Кто-нибудь может пролить свет на это?