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!

推薦閱讀: