我正在打印一张图表,其中一行来自2个numpy数组,其中包含相同数量的浮点数,并且工作正常。
f_used = sp.interpolate.interp1d(time, distance, kind='cubic')
timeinterp = sp.arange(0, runtime+incr, incr)
distinterp = f_used(timeinterp)
plt.plot(timeinterp, distinterp, '-', lw=3, c="red" )
到目前为止,这么好。在下一步中,我想根据它们的音高(distinterp / timeinterp
)绘制线段。如果比率> 5.0然后让我们说线条样式应该是"点缀"或/并获得另一种颜色。
我找不到任何解决方案。有人有想法吗?
如果有帮助:Raspberry Pi 3上的Raspbian,使用Python3更新了所有软件
答案 0 :(得分:1)
您将有效地将数据分成您想要的不同部分,因为每个线对象只能有一个样式/颜色/等。分配给它的组合。
使用numpy(或scipy,在你的情况下只是直接导入底层的numpy函数)应该是微不足道的:
mask = (distinterp / timeinterp) > 5.0
plt.plot(timeinterp[mask], distinterp[mask], ':', lw=3, c='r')
plt.plot(timeinterp[~mask], distinterp[~mask], '-', lw=3, c='b')
更好的方法可能是使用matplotlib的面向对象的API:
mask = (distinterp / timeinterp) > 5.0
fig, ax = plt.subplots()
ax.plot(timeinterp[mask], distinterp[mask], ':', lw=3, c='r')
ax.plot(timeinterp[~mask], distinterp[~mask], '-', lw=3, c='b')