簡體   English   中英

將 x 軸值添加到圖中的峰值

[英]Adding the x-axis values to the peaks in the graph

親愛的 StackOverflow 家庭,

我一直在嘗試將 x 軸值放在圖中檢測到的峰值旁邊或頂部。 基本上,首先我使用 function 來找到光譜中的峰值。 然后,我想使用這些與峰值一致的 x 軸值,而不僅僅是放置“x”或任何類型的符號。

感謝您提供任何幫助或建議。

代碼;

    peaks, properties = find_peaks(meanMat1, prominence=1, width=4)
    peak_coordinates = list(zip(Ram[peaks], a[peaks])) 
    
    print(peak_coordinates)
   
    d=Ram[peaks]
    e=c[peaks]
    
    ax.plot(d, e, "x", color = "xkcd:orange")

(這里,d 和 e 是檢測到的峰。d 和 e 分別給出 x 軸和 y 軸值(在 np.array 中)。)

您可以使用 Matplotlib text在數據坐標中的位置 x (在您的示例中為d )、y (在您的示例中為e )添加一個字符串,或者在您的特定情況下添加 x 軸值。

import matplotlib.pyplot as plt
from scipy.signal import find_peaks
import numpy as np

# curve setup
x = np.linspace(0,10*np.pi,200)
fx = np.sin(2*x)*np.cos(x/2)*np.exp(-0.1*x)

peaks, _ = find_peaks(fx, prominence=0.4)
peak_coordinates = list(zip(peaks, fx[peaks]))

fig, ax = plt.subplots()
ax.plot(fx)
ax.plot(peaks, fx[peaks], "x")

y0,y1=ax.get_ylim()
ax.set_ylim(y0,y1*1.1) # fix top y-limit

for xp,yp in peak_coordinates:
    plt.text(xp*1.05, yp*1.05, xp, fontsize=10)

plt.show()

峰值

暫無
暫無

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

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