簡體   English   中英

繪制熱數據(使用 pcolormesh 或類似的)在地圖邊緣(cartopy)失敗

[英]Plotting heat data (with pcolormesh or similar) fails in the edges of map (cartopy)

我想在地圖上繪制熱數據(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()

結果 No1:數組不透明的結果(第一列和最后一列具有相同的值)

結果二:透明數組的結果

運行您提供的代碼對我來說效果很好,可以生成帶有透明 pcolormesh 的地圖。 我相信這是想要的結果嗎?

OP 代碼和結果圖

您也有可能導致問題的圍欄問題。 請注意,雖然您制作了一個 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)

即在所需位置設置塊的邊緣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM