亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 1D X、Y 和 Z 變量在 python 中繪制二維等高線圖

使用 1D X、Y 和 Z 變量在 python 中繪制二維等高線圖

繁星點點滴滴 2023-05-23 16:26:55
讓我承認我是 Python 的新手,開始這個查詢。我想在 Python 中創建數據的等高線圖,以便自動化該過程,否則可以使用 Surfer 輕松執行。我有 1000 個這樣的數據文件,手動創建可能會非常乏味。我正在使用的數據如下所示,它是一個帶有 0、1 和 2 標頭以及 1,2,..279 作為索引的數據框:     0   1         20     3  -1 -0.0107001     4  -1  0.0401002     5  -1  0.0610003     6  -1  0.0520004     7  -1  0.013100..   ..  ..       ...275  30  -9 -1.530100276  31  -9 -1.362300277  32  -9 -1.190200278  33  -9 -1.083600279  30 -10 -1.864600[280 rows x 3 columns]這里,x=data[0]y=data[1]z=data[2]由于輪廓函數 pf matplotlib 要求 z 是一個二維數組;這就是混亂開始的地方。在計算器查詢的幾種解決方案之后,我做了以下事情:import numpy as npx=np.array(x)y=np.array(y)z=np.array(z)X, Y = np.meshgrid(x, y)import scipy.interpolaterbf = scipy.interpolate.Rbf(x, y, z, function='cubic')Z=rbf(X,Y)lmin=data[2].min()lmax=data[2].max()progn=(lmax-lmin)/20limit=np.arange(lmin,lmax,progn)fig, ax = plt.subplots(figsize=(6,2)) #x ranges between 3 to 57, y -1 to -10ax.contour(X,Y,Z,limit) ax.set_title('Contour Plot')plt.show()使用上面的代碼可以得出該圖。然而,這是不希望的,如果一旦可以看穿表面噪聲線,那么下面就會有有序的等高線,這實際上是需要的,從這里的沖浪者生成的等高線圖中可以看出。我想重申,生成沖浪圖時使用了相同的數據。在創建所需情節方面的任何幫助都將受到高度贊賞。
查看完整描述

2 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

除了丟失數據之外,我在處理不規則間隔的數據時遇到了類似的問題。有人提出的關于二維散點圖的建議是完美的解決方案。

plt.figure(figsize=(10,10))
plt.scatter(df.doy,df[i].UT,c=df[i].TEC,s=10,cmap="jet")
plt.colorbar()

Likewsie,我使用繪制了相同的等高線圖plt.tricontourf并得到了相同的結果

plt.figure(figsize=(10,10))
plt.tricontourf(df.doy,df.UT,df.TEC,100,cmap="jet")
plt.colorbar()


查看完整回答
反對 回復 2023-05-23
?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

我想把他的建議與我的查詢結合起來。


ax.contour替換為ax.tricontour解決了我的情況。并ax.tricontourf完成輪廓填充。因此,我的代碼的最后一段是:


fig, ax = plt.subplots(figsize=(6,2)) #x ranges between 3 to 57, y -1 to -10

ax.tricontour(X,Y,Z,limit) 

ax.tricontourf(X,Y,Z,limit) 

ax.set_title('Contour Plot')

plt.show()


查看完整回答
反對 回復 2023-05-23
  • 2 回答
  • 0 關注
  • 324 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號