Python繪圖並標記出指定點(最大值點)方法實例
用Python代碼,繪制圖形並在圖上最大值點處用箭頭標記出數值。
import numpy as np import matplotlib.pyplot as plt # 生成數據,這裡生成一個正弦曲線 x = np.linspace(-5, 5, 100) # 在[-5,5]之間生成100個點作為x坐標 y = np.sin(x) # 計算每個x點上的正弦值 # 找到最大值點,這裡使用np.argmax函數查找y數組中的最大值的索引 max_idx = np.argmax(y) max_x, max_y = x[max_idx], y[max_idx] # 繪制圖形 plt.plot(x, y) # 繪制正弦曲線 plt.scatter(max_x, max_y, color='red', s=50) # 在最大值點上繪制一個紅色的圓點 plt.annotate(f'max: ({max_x:.2f}, {max_y:.2f})', xy=(max_x, max_y), xytext=(max_x-1, max_y+0.5), arrowprops=dict(facecolor='red', shrink=0.05)) # 添加註釋,使用紅色箭頭連接註釋和最大值點 plt.show() # 顯示圖形
這裡我們生成瞭一個正弦曲線,並使用 plt.plot(x, y)
繪制瞭這個曲線。接著,我們使用 np.argmax(y)
查找瞭y數組中最大值的索引,也就是正弦曲線的最高點。然後,我們使用 plt.scatter(max_x, max_y, color='red', s=50)
在最大值點上繪制瞭一個紅色的圓點,使用 plt.annotate
添加瞭一個註釋,指出瞭最大值點的坐標,箭頭顏色也設置成紅色,註釋與最大值點連接。最後,我們使用 plt.show()
顯示圖形,如下圖:
plt.annotate 函數用於添加文本註釋,其參數如下:
- f'max: ({max_x:.2f}, {max_y:.2f})':註釋的文本內容,這裡使用瞭 f-string 格式化字符串,並使用 .2f 指定瞭最大值點的坐標格式,保留小數點後兩位。
- xy=(max_x, max_y):被註釋的點的坐標,也就是最大值點的坐標。
- xytext=(max_x-1, max_y+0.5):註釋文本的坐標,這裡是相對於 xy 坐標的偏移量,將註釋文本放置在最大值點左上方。
- arrowprops=dict(facecolor='red', shrink=0.05):指定箭頭的屬性,這裡使用瞭一個字典來指定箭頭的顏色和大小。facecolor 指定箭頭顏色為紅色,shrink 指定箭頭大小為當前註釋框大小的5%。
通過這些參數,我們可以調整註釋框的位置、大小、顏色等屬性,以達到我們想要的效果。
補充:matplotlib.pyplot 標記出曲線上最大點和最小點的位置
廢話不多說,直接上代碼。
要求:正確安裝瞭matplotlib庫
import matplotlib.pyplot as plt import numpy as np def demo_test(): a=np.array([0.15,0.16,0.14,0.17,0.12,0.16,0.1,0.08,0.05,0.07,0.06]); max_indx=np.argmax(a)#max value index min_indx=np.argmin(a)#min value index plt.plot(a,'r-o') plt.plot(max_indx,a[max_indx],'ks') show_max='['+str(max_indx)+' '+str(a[max_indx])+']' plt.annotate(show_max,xytext=(max_indx,a[max_indx]),xy=(max_indx,a[max_indx])) plt.plot(min_indx,a[min_indx],'gs') plt.show() if __name__=="__main__": demo_test();
效果圖如下:
總結
到此這篇關於Python繪圖並標記出指定點(最大值點)的文章就介紹到這瞭,更多相關Python繪圖並標記指定點內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python中的annotate函數使用
- 手把手教你用Matplotlib實現數據可視化
- matplotlib繪制正餘弦曲線圖的實現
- Python matplotlib繪圖詳解
- Python進階Matplotlib庫圖繪制