绘制曲线上的标记,其中X的值在matplotlib中已知

时间:2017-05-12 06:42:18

标签: python matplotlib markers

我从实验得到的数据中绘制了w.r.t时间序列的曲线。以10ms间隔收集数据。数据是单行数组。

我还计算了一个数组,其中包含触发某个设备的时间。我画了这些触发位置的axvlines。

现在我想显示我的曲线穿过这些axvlines的标记。我该怎么做?

触发时间(X-已知)。绘制曲线但不具有任何等式(不规则实验数据)。触发间隔也不总是相同的。

感谢。

p.s - 我也在图上使用了多个寄生轴。并不是说它真的很重要,只是为了以防万一。

Want Markers On Curve Where AXVline Crosses

1 个答案:

答案 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()

enter image description here