【发布时间】:2015-01-21 11:11:02
【问题描述】:
在某些 pdf 查看器(例如 OSX 上的 Preview)中,使用 matplotlib 的 pcolor 绘制的图有白线(见下图)。我怎样才能摆脱它们?
源码很简单(x,y,z任意数据):
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")
【问题讨论】:
-
这是因为
pcolormesh实际上绘制了单独的矩形,并且一些 pdf 查看器呈现它们的方式与其他查看器不同。作为一种解决方法,并且因为它更有效,在这种情况下最好使用imshow。例如,在您的情况下:plt.imshow(z, interpolation='nearest', cmap='Blues', extent=[x.min(), x.max(), y.min(), y.max()]). -
谢谢!这正是我锁定的目的。
-
您可以通过将
rasterized=True传递给colorbar来解决此问题。 -
我在调用
pl.colorbar(rasterized=True)时收到“意外的关键字参数 'rasterized'”错误。使用 MPL 版本 1.3.1 和 1.4.x。 this question 上的最佳答案对我有用。 -
试试
cb.solids.set_rasterized(True)
标签: python matplotlib