如何避免matplotlib导出SVG时相邻条形图间出现空白间隙?
解决Matplotlib条形图导出SVG出现间隙的问题
这是Matplotlib导出SVG时的渲染精度或抗锯齿逻辑导致的问题,以下是几种直接可行的解决方法:
消除条形边缘颜色:绘制条形图时指定
edgecolor='none',避免边缘的细微线条被渲染成可见间隙:import matplotlib.pyplot as plt plt.bar(x, height, width=1, edgecolor='none') # width=1确保条形无间隙,edgecolor消除边缘渲染 plt.savefig('bars.svg')提升SVG导出精度:调用
savefig时设置更高的dpi参数,强化矢量图形的渲染精度:plt.savefig('bars.svg', dpi=300, format='svg')关闭SVG后端抗锯齿:通过修改SVG渲染后端的设置,关闭抗锯齿来避免间隙出现:
from matplotlib.backends.backend_svg import RendererSVG RendererSVG.aa = False plt.savefig('bars.svg')升级Matplotlib版本:部分旧版本的SVG导出模块存在精度bug,升级到最新稳定版可直接修复这类问题:
pip install --upgrade matplotlib
如果上述方法仍有残留问题,也可以用Inkscape等矢量编辑工具手动合并条形,但优先通过代码层面解决更高效。
内容的提问来源于stack exchange,提问作者tofri
相关产品推荐
相关产品推荐

