如何解决在地图Cartopy的边缘绘制热数据使用pcolormesh或类似颜色失败
我想在地图上绘制热量数据(Cartopy投影),但是在地图的边缘,无论阵列的大小如何,都会创建一个细胞框架。注意,最左边和最右边的列具有相同的值。
代码:
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np
ax = plt.axes(projection=ccrs.PlateCarree())
ax.set_global()
ax.coastlines()
heat_data = np.random.rand(10,10)
lat = np.linspace(-90,90,heat_data.shape[1])
lon = np.linspace(-180,180,heat_data.shape[0])
ax.pcolormesh(lon,lat,np.transpose(heat_data),alpha = 0.2)
plt.show()
结果1:Result without transparency of the array (first and last columns have identical values)
结果2:Result with transparent array
解决方法
运行您提供的代码对我来说效果很好,生成带有透明pcolormesh的地图。我相信这是理想的结果吗?
您还遇到了可能导致该问题的击剑杆问题。请注意,虽然制作了10 x 10的单元格网格,但在包含端点的10 x 10网格中指定lon和lat,以移动网格的中心。这将使meshgrid混乱。您可以尝试:
lat = np.linspace(-90,90,heat_data.shape[1] +1)
lon = np.linspace(-180,180,heat_data.shape[0] +1)
即将块的边缘设置在所需位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。