Reducing the size of pdf figure file in matplotlib

dpi, figure, matplotlib

Solution

The PDF is larger, since it contains all the vector information. By saving a PNG, you produce a rasterized image. It seems that in your case, you can produce a smaller PDF by rasterizing the plot directly:

plt.plot(x, y, 'r-', rasterized=True)

Here, `x, y` are some plot coordinates. You basically have to use the additionally keyword argument `raterized` to achieve the effect.

Problem

In `matplotlib`, I am using `LineCollection` to draw and color the countries, where the boundaries of the counties are given. When I am saving the figure as a pdf file: ``` fig.savefig('filename.pdf',dpi=300) ``` the figure size are quite big. However, on saving them as png file: ``` fig.savefig('filename.png',dpi=300) ``` and then converting them to pdf using linux `convert` command the files are small. I tried reducing the dpi, however that do not change the pdf file size. Is there a way the figures can be saved directly as smaller-pdf files from matplotlib?

Original source

Related problems