我有一個 DataFrame,格式如下:
Lon Lat N
0 2 1 1
1 2 2 2
2 2 3 1
3 2 2 1
4 3 2 1
5 3 2 1
其中Lon和Lat代表坐標(位置),N代表對應位置的計數。
現在,我想:
- 計算
N每個點的總和以實作如下:
Lon Lat N
0 2 1 1
1 2 2 3
2 2 3 1
3 3 2 2
- 給定一個meshgrid
Lon_grid = np.arange(1,5),Lat_grid = np.arange(1,4),即一個4 * 3 的矩陣,然后在等高線中繪制資料。請注意,沒有資料的位置可以用 NaN 或 0 填充。
如果沒有足夠的資料來制作輪廓,最終的結果可能是這樣的:
Lon Lat N
0 1 1 0
1 2 1 1
2 3 1 0
3 4 1 0
4 1 2 0
5 2 2 3
6 3 2 2
7 4 2 0
8 1 3 0
9 2 3 1
10 3 3 0
11 4 3 0
非常感謝您的幫助!
uj5u.com熱心網友回復:
以下是提供資料的示例:
df2 = df.pivot_table(index='Lon', columns='Lat', values='N',
aggfunc='sum', fill_value=0)
X,Y = np.meshgrid(df2.index.to_numpy(), df2.columns.to_numpy())
plt.contourf(X, Y, df2.values.T)
plt.colorbar()
plt.show()
輸出:

對于匯總資料(我在這里沒有使用):
out = df.groupby(['Lon', 'Lat'], as_index=False).sum()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517328.html
上一篇:matplotlib不繪制零
