我试图在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()
如何使过渡方波(即垂直线)而不是倾斜线?
答案 0 :(得分:4)
您可以使用步骤绘制风格,例如
plt.plot(array, drawstyle="steps-mid")
根据此处定义时间步骤的方式,您也可以使用
"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()
答案 2 :(得分:2)
您需要提供X值,而不是让它们默认为连续的整数。硬编码会给我们:
Xvals = [0, 1, 2, 2, 3, 4, 4, 5, 6, 7, ...]
你能从那里拿走吗?您有文档和示例,向您展示如何制作2D绘图 - 如果不是在您的课程材料中,通过简单的搜索在线进行。
其他提示:
你可以简单地制作Xvals:如果当前和前面的元素相等,则增加值;否则,不要管它