簡體   English   中英

繪制數據框的輪廓圖,x 軸作為日期時間,y 軸作為深度

[英]Plotting Contour plot for a dataframe with x axis as datetime and y axis as depth

我有一個數據框,索引為日期時間,列為深度。 我想繪制一個類似於下圖的等高線圖。 任何想法我應該怎么做? 我嘗試使用plt.contour()函數,但我想我必須先整理數據的數組。 我不確定這部分。

我的數據框示例:

Datetime             -1.62  -2.12  -2.62  -3.12  -3.62  -4.12  -4.62  -5.12                                                        
2019-05-24 15:45:00   4.61   5.67   4.86   3.91   3.35   3.07   3.03   2.84   
2019-05-24 15:50:00   3.76   4.82   4.13   3.32   2.84   2.40   2.18   1.89   
2019-05-24 15:55:00   3.07   3.77   3.23   2.82   2.41   2.21   1.93   1.81   
2019-05-24 16:00:00   2.50   2.95   2.63   2.29   1.97   1.73   1.57   1.48   
2019-05-24 16:05:00   2.94   3.62   3.23   2.82   2.62   2.31   2.01   1.81   
2019-05-24 16:10:00   3.07   3.77   3.23   2.82   2.51   2.31   2.10   1.89   
2019-05-24 16:15:00   2.71   3.20   2.86   2.70   2.51   2.31   2.18   1.97   
2019-05-24 16:20:00   2.50   3.07   2.86   2.82   2.73   2.50   2.37   2.22   
2019-05-24 16:25:00   2.40   3.20   3.10   2.93   2.73   2.50   2.57   2.84   
2019-05-24 16:30:00   2.21   2.95   2.86   2.70   2.73   2.72   2.91   3.49   
2019-05-24 16:35:00   2.04   2.72   2.63   2.59   2.62   2.72   3.03   3.35   
2019-05-24 16:40:00   1.73   2.31   2.33   2.39   2.62   2.95   3.57

我想要的情節示例:

在此處輸入圖片說明

對於plt.contour()的 XYZ 輸入,我想找出它需要什么數據結構。 它說它需要一個二維數組結構,但我很困惑。 我如何使用我當前的數據框獲得它?

我已經想出了一個解決方案。 請注意,X (tt2) - 時間輸入和 Y(depth) - 深度輸入,必須與 Z(mat2) 矩陣維度匹配才能使 plt.contourf 工作。 我意識到 plt.contourf 生成我想要的圖像而不是 plt.contour,它只繪制輪廓線。

我的代碼示例:

tt2 = [...]
depth = [...]   
plt.title('SSC Contour Plot')
fig=plt.contourf(tt2,depth,mat2,cmap='jet',levels= 
[0,2,4,6,8,10,12,14,16,18,20,22,24,26], extend= "both")
plt.gca().invert_yaxis() #to flip the depth from shallowest to deepest
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d/%m/%Y %H:%M:%S'))
#plt.gca().xticklabels(tt)
cbar = plt.colorbar()
cbar.set_label("mg/l")
yy = len(colls2)
plt.ylim(yy-15,0) #assumming last 10 depth readings have NaN
plt.xlabel("Datetime")
plt.xticks(rotation=45)
plt.ylabel("Depth (m)")
plt.savefig(path+'SSC contour plot.png') #save plot 
plt.show()

生成的情節示例

暫無
暫無

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

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