首页 > 解决方案 > 绘制与 plt.hist(histt​​ype='step') 中相同样式的普通绘图

问题描述

pyplot 中的 plt.hist() 方法有一种方法可以在调用时创建“阶梯式”绘图样式

plt.hist(data, histtype='step')

在此处输入图像描述

但是绘制原始数据而不进行处理的“普通”方法(plt.plot()、plt.scatter() 等)显然没有样式选项来获得相同的结果。我的目标是使用该样式绘制一组给定的点,而不制作这些点的直方图。

这是否可以通过标准库方法来绘制给定的二维点集来实现?

我还认为至少有一个 hack(生成一个假分布,其直方图等于我们的数据)和一个“低级”解决方案来手动绘制每个段,但这些方法似乎都不有利。

标签: matplotlib

解决方案


也许您正在寻找drawstyle="steps".

import numpy as np; np.random.seed(42)
import matplotlib.pyplot as plt

data = np.cumsum(np.random.randn(10))

plt.plot(data, drawstyle="steps")

plt.show()

在此处输入图像描述

请注意,这与直方图略有不同,因为线在末端不会变为零。


推荐阅读