我正在 matplotlib 中以条形图的形式绘制数据,并试图仅显示条形的轮廓,以便它显示为数据的“阶梯图”。
我在下面添加了我的代码以及所需输出的图像。
plt.bar(x, y, align='center', width=0.1, edgecolor='black', color='none')
还有其他库可以产生此结果吗? bar 关键字参数似乎没有任何东西可以实现。
答案 0 :(得分:2)
您的图像看起来像一个在每个x,y值周围水平的函数。以下代码对此进行了模拟:
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(0, 30, 1)
y = np.random.uniform(2, 10, 30)
xs = [x[0] - 0.5]
ys = [0]
for i in range(len(x)):
xs.append(x[i] - 0.5)
xs.append(x[i] + 0.5)
ys.append(y[i])
ys.append(y[i])
xs.append(x[-1] + 0.5)
ys.append(0)
plt.plot(xs, ys, color='dodgerblue')
# optionally color the area below the curve
plt.fill_between(xs, 0, ys, color='gold')
PS:@AsishM。在评论中提到,matplotlib也具有自己的步进功能。如果该功能实现,请使用该功能。如果需要一些额外的控制或变化,此答案可以作为一个开始,例如为曲线下方的区域着色或处理末端的形状。