我有我的条形图代码。Matplotlib条形图不绘制边框/边缘
ax1 = plt.subplot2grid((1,1),(0,0))
ax1.bar(edges2, Nnorm, width=0.02, edgecolor='green', linewidth=20)
我认为应该让我的条形图有绿色的边缘。但事实并非如此。它使最左边的一个酒吧绿色。我究竟做错了什么? Facecolor的作品。
我有我的条形图代码。Matplotlib条形图不绘制边框/边缘
ax1 = plt.subplot2grid((1,1),(0,0))
ax1.bar(edges2, Nnorm, width=0.02, edgecolor='green', linewidth=20)
我认为应该让我的条形图有绿色的边缘。但事实并非如此。它使最左边的一个酒吧绿色。我究竟做错了什么? Facecolor的作品。
不幸的是,this is a bug in matplotlib 2.1。它应该在下一个版本中修复。
截至目前一种解决方法是设置edgecolor和线宽为每个单独的条:
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()
前面已经解释过,这是一个matplotlib bug。然而,这仅仅是edgecolor的缺失广播,所以这里有一个更紧凑的解决方法:
plt.bar(x, y, linewidth=20, edgecolor=['g']*len(x))
另一种解决方案是通过一个alpha参数:
plt.bar(range(4), [3,4,1,5], alpha=1, edgecolor='k', linewidth=20)
注:这只能当您正在设置的边缘颜色为黑色,否则第一列将具有正确的边缘颜色,其余部分将为黑色
完美。不幸的错误,但这种工作效果很好。谢谢!我会密切关注更新。 – Nertskull