【发布时间】:2014-10-14 12:17:48
【问题描述】:
代码优先:
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
ax = plt.axes(projection=ccrs.Mercator())
ax.set_extent([72, 135, 18, 53])
ax.annotate('hello', xy=(100, 49), xycoords='data',
transform=ccrs.PlateCarree(), zorder=12)
plt.show()
结果不是预期的,我对我的方法还有其他疑问。所以我的问题是:
如果我想绘制一个看起来像网络地图的地图(例如谷歌地图)。地图区域可能和中国一样大,大多不是全球性的。在谷歌搜索之后,这些网站主要使用“网络墨卡托”投影。所以我想我应该在这里使用
plt.axes(projection=ccrs.Mercator(),对吗?或者如果我错了我应该使用什么?我想要绘制的坐标数据类似于 121°E,49°N(在绘制之前将度数转换为十进制),未投影的 WGS84 坐标系统,可能来自 GPS。那么我使用
transform=ccrs.PlateCarree()是否正确?或者如果我错了我应该使用什么?上面的
annotate没有显示任何内容。在注释ax.set_extent行之后,“hello”文本被绘制在零(0, 0)点。我想要的是在点(100°E,49°N)如何纠正这个?
【问题讨论】:
-
只是基于我的答案长度的建议 - 将来可能值得将您的问题分开。例如,“如何在 Cartopy 中创建 Google Mercator”没有理由不能成为它自己的问题。否则,这些都是很好的问题。 :+1:
-
感谢您如此详细地回答问题。并请原谅我表达不好。我来自中国,我必须把一本英语词典放在一边才能问这些问题。现在我更专注于选择正确的单词并准确输入,而不是适当的表达。但是对于cartopy和英语,我都在练习。我会听取您的建议,分别提出问题。
-
我认为你的英语很好——我理解了最重要的问题。祝您在英语和 cartopy 的旅途中好运。听到使用 cartopy 所做的事情总是很有趣,所以如果您将来有一些有趣的结果要分享,请随时与我们联系(也许发布一个 github gist 并通知我@pelson) - 这会很棒收到您的来信。
标签: matplotlib cartopy