首页 文章

matplotlib的pcolor中的白线

提问于
浏览
13

在某些pdf查看器中,例如在OSX上预览,使用 matplotlib 的pcolor制作的图表有白线(见下图) . 我怎么能摆脱他们?

源代码非常简单(为 xyz 选择任何数据):

import matplotlib
matplotlib.use("pdf")
import matplotlib.pyplot as pl
pl.figure()
pl.pcolormesh(x,y,z,cmap="Blues",linewidth=0) 
pl.savefig("heatmap.pdf")

enter image description here

1 回答

  • 16

    评论有一个很好的解决方案,利用 imshow . 当 imshow 不适合输入数据时(例如,它不是均匀间隔),这通常可以解决这个问题,

    pcol = pl.pcolormesh(x,y,z,cmap="Blues",linewidth=0,)
    pcol.set_edgecolor('face')
    

    如果这种方法不能充分减少线条,您也可以尝试这样做:

    pl.pcolormesh(x,y,z,cmap="Blues",linewidth=0,rasterized=True)
    

    除了减少方块之间的线之外,这种方法还倾向于稍微减小文件大小,这有时是有用的 . 在这种情况下,您可能需要在保存时调整 dpi 设置(例如 pl.savefig("heatmap.pdf", dpi=300) ),直到获得满意的效果 .

相关问题