如何摆脱我的情节

时间:2018-01-30 22:25:51

标签: python numpy matplotlib

我试图在Python中绘制一系列值的图表:

import matplotlib.pyplot as plt
import control
import numpy

array = [0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1]

plt.plot(array)

plt.xlabel('Time')
plt.ylabel('ALE')

plt.show()

目前,我得到了这个情节: enter image description here

如何使过渡方波(即垂直线)而不是倾斜线?

3 个答案:

答案 0 :(得分:4)

您可以使用步骤绘制风格,例如

plt.plot(array, drawstyle="steps-mid")

enter image description here

根据此处定义时间步骤的方式,您也可以使用 "steps-pre""steps-post"如果您的时间步长不等距,您仍需要为绘图提供一些x值。

答案 1 :(得分:3)

我建议使用plt.step()使行垂直

import matplotlib.pyplot as plt

ys = [0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1]
xs = range(array.size)

plt.step(xs, ys)
plt.show()

enter image description here

答案 2 :(得分:2)

您需要提供X值,而不是让它们默认为连续的整数。硬编码会给我们:

Xvals = [0, 1, 2, 2, 3, 4, 4, 5, 6, 7, ...]

你能从那里拿走吗?您有文档和示例,向您展示如何制作2D绘图 - 如果不是在您的课程材料中,通过简单的搜索在线进行。

其他提示:

你可以简单地制作Xvals:如果当前和前面的元素相等,则增加值;否则,不要管它