我从实验得到的数据中绘制了w.r.t时间序列的曲线。以10ms间隔收集数据。数据是单行数组。
我还计算了一个数组,其中包含触发某个设备的时间。我画了这些触发位置的axvlines。
现在我想显示我的曲线穿过这些axvlines的标记。我该怎么做?
触发时间(X-已知)。绘制曲线但不具有任何等式(不规则实验数据)。触发间隔也不总是相同的。
感谢。
p.s - 我也在图上使用了多个寄生轴。并不是说它真的很重要,只是为了以防万一。
答案 0 :(得分:3)
您可以使用numpy.interp()
来插入数据。
import numpy as np
import matplotlib.pyplot as plt
trig = np.array([0.4,1.3,2.1])
time = np.linspace(0,3,9)
signal = np.sin(time)+1.3
fig, ax = plt.subplots()
ax.plot(time, signal)
for x in trig:
ax.axvline(x, color="limegreen")
#interpolate:
y = np.interp(trig, time, signal)
ax.plot(trig, y, ls="", marker="*", ms=15, color="crimson")
plt.show()