将 x 轴值添加到图中的峰值
Adding the x-axis values to the peaks in the graph
亲爱的 Whosebug 大家庭,
我一直在尝试将 x 轴值放在图中检测到的峰值旁边或顶部。基本上,首先我使用该函数来查找频谱中的峰值。然后,我想使用这些与峰值重合的 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-axis 值添加到位置 x 的轴(在您的示例中为 d
), y(在您的示例中为e
)在数据坐标中。
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()
亲爱的 Whosebug 大家庭,
我一直在尝试将 x 轴值放在图中检测到的峰值旁边或顶部。基本上,首先我使用该函数来查找频谱中的峰值。然后,我想使用这些与峰值重合的 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-axis 值添加到位置 x 的轴(在您的示例中为 d
), y(在您的示例中为e
)在数据坐标中。
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()