Re: [matplotlib-devel] Setting dpi in savefig has unexpected results for PDFs

2010-07-17 Thread Tony S Yu

On Jul 16, 2010, at 4:08 PM, Eric Firing wrote:

> On 07/16/2010 09:45 AM, Tony S Yu wrote:
>> 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
> 
> No, 576 x 432 is the paper size in points, not dots, so it is 8x6 inches 
> as requested.  Since the content is all vector-based, there is no notion 
> of dots or pixels in test.pdf.

[snip]

>> 
>> 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.
> 
> No; I think the present behavior is correct, regardless of the pdf 
> version.  It is not really a hard-coded dpi at all, it is a confusing 
> aspect of the way mpl uses variables called "dpi".  (But someone who 
> knows more about pdf may correct me if necessary.)
> 
> Eric

Hmm, that makes sense. 

I was just confused by the fact that some programs use points as dots or pixels 
when displaying to screen. For example, that's how my presentation software 
chooses to display embedded PDFs. As a result, an 8in x 6in PNG shows up as a 
different size than an 8in x 6in PDF. (Yes, you can resize, but this screws up 
all the font sizes). Anyway, I guess this is more an issue with my presentation 
software than anything else.

Thanks for the clarification, Eric.

-Tony





--
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


[matplotlib-devel] rendering problem in mplot3d

2010-07-17 Thread H Mike Duan
Hi,

There seems to be a problem in how 3D surfaces and lines are rendered
in mplot3d. The following is a simple script that plots a yellow
sphere, a blue wireframe on the surface of the sphere, and a red
wireframe outside the sphere. The semi-transparent yellow sphere is
rendered beautifully. The blue wireframe can only be seen with certain
viewing angles. The red wireframe is seen all the time, but its part
that is supposedly behind the sphere appears in front of the sphere.
Did I do something wrong or is it a bug of mplot3d? I am using
matplotlib 1.0.0 on Mac OS X 10.6. Thanks!

-Mike

===
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)

x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))
ax.plot_surface(x, y, z,  rstride=4, cstride=4, color='y', alpha=0.5)
ax.plot_wireframe(x, y, z, rstride=10, cstride=10, color='b')
ax.plot_wireframe(x*1.1, y*1.1, z*1.1, rstride=20, cstride=20, color='r')

--
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