Matplotlib直方图无法绘制边框/边缘

2024-10-01 17:28:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有条形图的代码。在

ax1 = plt.subplot2grid((1,1),(0,0))
ax1.bar(edges2, Nnorm, width=0.02, edgecolor='green', linewidth=20)

我想这应该使我的条形图有绿色的边缘。但事实并非如此。在最左边的果岭上有一个横杆。我做错什么了?脸色很管用。在

enter image description here


Tags: 代码barpltgreenwidth边缘事实条形图
3条回答

另一种解决方案是传递alpha参数:

plt.bar(range(4), [3,4,1,5], alpha=1, edgecolor='k', linewidth=20)

注意:这只在您设置的edgecolor为黑色时有效,否则第一列将具有正确的edgecolor,其余列将为黑色

不幸的是,this is a bug in matplotlib 2.1。它在matplotlib版本2.2中已修复。在

到目前为止,解决方法是分别为每个条设置边缘颜色和线宽:

import matplotlib.pyplot as plt

bars = plt.bar(range(4), [3,4,1,5])
for bar in bars:
    bar.set_edgecolor("green")
    bar.set_linewidth(20)

plt.show()

enter image description here

如前所述,这是一个matplotlib bug。不过,这只是缺少了edgecolor的广播,所以这里有一个更紧凑的解决方案:

plt.bar(x, y, linewidth=20, edgecolor=['g']*len(x))

相关问题 更多 >

    热门问题