python plot一系列值的水平线

Kex*_* Xu 4 python matplotlib

我是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
Run Code Online (Sandbox Code Playgroud)

Bas*_*els 7

这可以通过Matplotlib 的步进功能完成:

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()
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

请参阅此示例,了解'where'参数的不同值之间的差异.根据您的描述,您似乎想要"发布"选项.