python - center_longitude 上 cartopy 等高线图中的白线
问题描述
我正在用 Cartopy 和 Matplotlib 绘制一些填充轮廓。数据位于纬度/经度网格上,当在 cartopy 投影上绘图时,一条白线沿着图形的中间延伸,或者我将“central_longitude”设置为ccrs.PlateCarree()
这是一个快速设置,显示了我在说什么。使用代码:
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
lon = np.arange(0, 360, 1)
lat = np.arange(-90, 90, 1)
data = np.zeros((180, 360))
fig = plt.figure()
ax = plt.subplot(projection=ccrs.PlateCarree())
ax.contourf(lon, lat, data)
ax.add_feature(cfeature.COASTLINE.with_scale('50m'))
plt.show()
有没有办法去掉这条白线?
解决方案
您应该使用cartopy.util.add_cyclic_point
这样的方式,以便 contourf 将数据视为在 x 方向上连续,并且白线将消失:
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from cartopy.util import add_cyclic_point
lon = np.arange(0, 360, 1)
lat = np.arange(-90, 90, 1)
data = np.zeros((180, 360))
data, lon = add_cyclic_point(data, coord=lon)
fig = plt.figure()
ax = plt.subplot(projection=ccrs.PlateCarree())
ax.contourf(lon, lat, data)
ax.add_feature(cfeature.COASTLINE.with_scale('50m'))
plt.show()
推荐阅读
- c# - 将 Web 应用程序托管到本地 IIS 服务器
- python - Gunicorn 在访问静态文件时抛出错误 403
- mysql - MySQL中的游标 - 他们是否创建临时表
- spring - 如何在运行时更改 log4j 中的日志记录级别而不重新启动码头服务器?
- c# - 无法从类中调用方法
- java - 在基本应用程序中使用动态应用程序功能
- php - 试图以 symfony 中的访问权限禁止的方式访问套接字
- c++ - 对于char * varable,如何在debug模式下查看其值
- swift - UIView 的背景颜色在完成后不断恢复为原始颜色
- scala - 如何使用 JSON4S 反序列化 Scala 树