我对python真的很陌生,并试图将速度绘制为从当前起点到下一个起点的常数值,因此速度从开始到结束(下一个开始)都是恒定的。

例如,距离 0 到 27.82 的速度应为 13,距离 27.82 到 40.12 的速度应为 15,依此类推。

任何想法?

startpointinmeters speed
0.0     13.0
27.82   15.0
40.12   14.0
75.33   14.0
172.77  17.0
208.64  18.0
253.0   21.0
335.21  20.0
351.16  25.0
590.38  22.0
779.37  21.0
968.35  22.0
1220.66 20.0
1299.17 19.0
1318.32 14.0
1352.7  9.0

最佳答案

这可以通过 Matplotlib 的 step 函数来完成:

import matplotlib.pyplot as plt

x = [0., 27.82, 40.12, 75.33, 172.77, 208.64, 253., 335.21, 351.16,
     590.38, 779.37, 968.35, 1220.66, 1299.17, 1318.32, 1352.7]
v = [13., 15., 14., 14., 17., 18., 21., 20., 25., 22., 21., 22., 20.,
     19., 14., 9.]

plt.step(x, v, where='post')
plt.xlabel('Position [m]')
plt.ylabel('Speed [m/s]')
plt.show()

结果:

请参阅 this example 以了解“where”参数的不同值之间的差异。根据您的描述,您似乎想要“发布”选项。

关于python 绘制一系列值的水平线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30246807/

10-14 13:30