Matplotlib直方图存为SVG出现多余白线,PNG正常的原因及解决
问题排查与解决
原因分析
SVG格式直方图出现白色分割线,是因为Matplotlib绘制直方图时默认边缘颜色(edgecolor)为白色,且你设置了linewidth=2——矢量格式SVG会精准渲染出这些白色边框;而PNG作为位图,渲染时细边框可能被填充色覆盖或因抗锯齿效果变得不可见,所以两者显示不一致。
解决方案
有两种方式可以消除SVG中的白色分割线,根据需求选择:
- 让边框颜色与填充色一致
修改直方图绘制代码,添加edgecolor='Black'参数,使边框和填充色融合:
plt.hist(dataset2['Angle'], bins=15, weights=weights2, color='Black', edgecolor='Black', linewidth=2, label='Virtual')
- 直接移除边框
如果不需要直方图边框,设置edgecolor='none'即可完全去掉分割线:
plt.hist(dataset2['Angle'], bins=15, weights=weights2, color='Black', edgecolor='none', linewidth=2, label='Virtual')
额外提示
你代码中plt.savefig(..., dpi=00)是无效设置,建议改为dpi=300这类合理数值,确保PNG格式的清晰度。
内容的提问来源于stack exchange,提问作者MCC
相关产品推荐
相关产品推荐

