python 画漫画_在漫画中画一条直线,罗宾逊投影

transform参数与要打印的数据相关联。在lat/lon中指定直线的起点和终点,因此唯一合理的变换是大地坐标变换和PlateCarree变换。在

当您设置transform=ccrs.Robinson()Cartopy假设您提供的坐标已经在Robinson投影中,而不是在Robinson投影中。本地坐标系中的Robinson投影范围与地理坐标系相比非常大(可能是1e7阶),因此您选择的两个点都非常接近投影的中心,这就是为什么您只看到一个点。在

如果你想在罗宾逊投影上画直线,你就必须用投影坐标来绘制它。这是直接使用Cartopy的变换系统,如下面修改的例子。有关Cartopy的变换/投影关键字如何工作的更多指导,请参见https://scitools.org.uk/cartopy/docs/v0.16/tutorials/understanding_transform.html。在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

# New bit: transform the given lat/lon points into the Robinson projection

geodetic = ccrs.Geodetic()

robinson = ccrs.Robinson()

ad_lon_t, ad_lat_t = robinson.transform_point(ad_lon, ad_lat, geodetic)

liv_lon_t, liv_lat_t = robinson.transform_point(liv_lon, liv_lat, geodetic)

plt.plot([ad_lon_t, liv_lon_t], [ad_lat_t, liv_lat_t],

color='blue', linewidth=1, marker='o', markersize=3,

# Be explicit about which transform you want:

transform=robinson)

plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值