import matplotlib.pyplot as plt
# _
# if you want the vertical line _|
plt.plot([0,2.3,2.3,5],[0,0,1,1])
#
# OR:
# _
# if you don't want the vertical line _
#plt.plot([0,2.3],[0,0],[2.3,5],[1,1])
# now change the y axis so we can actually see the line
plt.ylim(-0.1,1.1)
plt.show()
def get_x_y_steps(x, y, where="post"):
if where == "post":
x_step = [x[0]] + [_x for tup in zip(x, x)[1:] for _x in tup]
y_step = [_y for tup in zip(y, y)[:-1] for _y in tup] + [y[-1]]
elif where == "pre":
x_step = [_x for tup in zip(x, x)[:-1] for _x in tup] + [x[-1]]
y_step = [y[0]] + [_y for tup in zip(y, y)[1:] for _y in tup]
return x_step, y_step
6条答案
按热度按时间chhkpiq41#
你好像想要
step
。例如
55ooxyrt2#
如果你有非均匀间隔的数据点,你可以使用
plot
的drawstyle
关键字参数:另外还有
steps-mid
和steps-post
。s8vozzvw3#
matplotlib 3.4.0新增功能
有一个新的
plt.stairs
方法来补充plt.step
:plt.stairs
和底层的StepPatch
提供了一个更清晰的界面,用于为常见的情况绘制逐步常数函数,即您知道阶跃边缘。这取代了
plt.step
的许多用例,例如在绘制np.histogram
的输出时。查看官方matplotlib库了解如何使用
plt.stairs
和StepPatch
。什么时候使用
plt.step
vsplt.stairs
plt.step
。**这里的步骤锚定在[1,2,3,4]
并向左扩展:plt.stairs
。之前的[1,2,3,4]
台阶点对应于[1,1,2,3,4]
楼梯边:使用
plt.stairs
和np.histogram
由于
np.histogram
返回边,因此它直接与plt.stairs
一起工作:luaexgnf4#
我想你需要
pylab.bar(x,y,width=1)
或者同样的pyplot
的bar方法。如果不需要,请检查gallery以获得你可以做的许多样式的图。每个图像都带有示例代码,向你展示如何使用matplotlib制作它。knpiaxh15#
画两条线,一条在y=0,一条在y=1,在阶跃函数的
x
处截断。例如,如果你想在
x=2.3
处从0步进到1,并从x=0
绘制到x=5
:b4qexyjb6#
如果有人只是想简化一些数据,而不是实际绘制它: