【问题标题】:White line in contour plot in cartopy on center_longitudecenter_longitude 上 cartopy 等高线图中的白线
【发布时间】:2019-05-28 18:28:52
【问题描述】:

我正在使用 Cartopy 和 Matplotlib 绘制一些填充轮廓。数据位于纬度/经度网格上,当在 cartopy 投影上绘图时,一条白线沿着图形中间延伸,或者我在 ccrs.PlateCarree() 中设置“central_longitude”的任何地方

这是一个快速设置,显示了我在说什么。使用代码:

    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 0.17.0 版,零经度处没有“白线”。
  • 我从 0.16 更新到 0.17 还是行

标签: python matplotlib cartopy


【解决方案1】:

您应该使用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()

【讨论】:

  • 有没有办法将它与 xarray 集成?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-17
  • 2017-04-10
  • 2017-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多