[英]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.