使用pcolormesh绘制的colormap存为PDF时出现像素间隙问题求助
解决pcolormesh保存PDF出现白色细线的问题
以下是几个实用的解决办法,能让PDF输出和PNG显示效果一致:
直接关闭pcolormesh的边缘绘制
在调用pcolormesh时,显式设置edgecolor='none'和linewidth=0,彻底取消每个色块的边缘线条:import matplotlib.pyplot as plt import numpy as np data = np.random.rand(10, 10) fig, ax = plt.subplots() ax.pcolormesh(data, edgecolor='none', linewidth=0) plt.savefig('output.pdf', format='pdf')改用pcolorfast绘制
pcolorfast是matplotlib针对大色块优化的函数,它会将色块合并成连续的图形,从根源上避免间隙问题,同时支持矢量输出:ax.pcolorfast(data) plt.savefig('output.pdf', format='pdf')全局禁用pcolormesh的边缘
如果需要批量处理多个图,可以通过rcParams全局设置,避免重复写参数:import matplotlib as mpl mpl.rcParams['pcolormesh.edgecolor'] = 'none' mpl.rcParams['pcolormesh.linewidth'] = 0 # 之后正常绘制pcolormesh即可 ax.pcolormesh(data) plt.savefig('output.pdf', format='pdf')用同色边缘覆盖间隙
如果上述方法无效,可以将色块边缘颜色设为与填充色一致,视觉上消除白缝:ax.pcolormesh(data, edgecolor='face', linewidth=0.5) plt.savefig('output.pdf', format='pdf')
内容的提问来源于stack exchange,提问作者L L
相关产品推荐
相关产品推荐

