I recently noticed that setting the dpi for savefig doesn't work as expected 
when saving to pdf. Take the following code, for example: 

>>> import matplotlib.pyplot as plt
>>> 
>>> plt.figure(figsize=(8,6))
>>> plt.plot([1,2])
>>> plt.savefig('test.png', dpi=100)
>>> plt.savefig('test.pdf', dpi=100)

The resulting png file is 800 x 600 (as expected), while the pdf file is 576 x 
432 [which is (800 x 600) * 72/100]. I found an old thread suggesting that a 
dpi of 72 should be hard coded into the PDF renderer for compatibility with 
older versions of the PDF spec. That makes sense; however, it'd be nice if the 
docstring for savefig told users about his behavior.

Below, is a patch to the savefig docstring. I'm sure someone else could word 
this better, but I thought I'd at least try.

Best,
-Tony

P.S. maybe enough time has passed that most people have adopted PDF 
viewers/parsers using PDF >= 1.6, and this hard-coded dpi could be removed? 
Just a thought.


Index: lib/matplotlib/figure.py
===================================================================
--- lib/matplotlib/figure.py    (revision 8561)
+++ lib/matplotlib/figure.py    (working copy)
@@ -1018,7 +1018,10 @@
 
           *dpi*: [ None | scalar > 0 ]
             The resolution in dots per inch.  If *None* it will default to
-            the value ``savefig.dpi`` in the matplotlibrc file.
+            the value ``savefig.dpi`` in the matplotlibrc file. NOTE: when
+            saving to pdf, the dpi will not affect the page dimensions (which
+            is always 72 dpi), but it will affect the resolution of rasterized
+            elements in the plot.
 
           *facecolor*, *edgecolor*:
             the colors of the figure rectangle

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to