Years ago I observed a similar behaviour with gnuplot. This behaviour appears if you use line join style 'miter' and if your data is very fine spaced with small noise. Then in the figure the noise appears much larger than it actually is. Limited output precision for representing the plot data in the different backends may also both increase or attenuate the observed noise. Best solution: use round line join style. I would propose to make this the default. I attached a script that shows this behaviour, and some images, pdf with Acrobat Reader. Agg does not show this noise, unless you render the figure with high resolution (here 1000dpi), and even then the noise is smaller. Perhaps Agg does some optimization/rounding? Difficult to tell which backend shows the correct behaviour, which might be not the preferred one.

Gregor

x = linspace(0,0.02, 1001) + random(1001)*1e-5
x[-1] = 1
y = ones_like(x)
y[:500:2] = 1 + random(250)*1e-4
clf()
plot(x,y, solid_joinstyle = 'miter')
plot(x,y+0.05, solid_joinstyle = 'round')
ylim(0.9,1.1)
savefig('testnoise.pdf')


Michael Droettboom schrieb:
Also -- for mtcoder:

Can you send us the script that generates your plot?

Also, if you set your backend to Cairo, and then generate the pdf, to you get the same result?

Cheers,
Mike

Michael Droettboom wrote:
There's something funny going on with line caps, maybe? It looks like the corners aren't getting capped in the same way as Agg does.

I've created screenshots of Jesse's pdf file in acrobat and evince.

Any thought, Jouni?

Cheers,
Mike

John Hunter wrote:
On Thu, Dec 11, 2008 at 11:16 PM, mtcoder <jberw...@gmail.com> wrote:

http://www.nabble.com/file/p20970084/testode.rk45.a0.99.eps1e-07.pdf
testode.rk45.a0.99.eps1e-07.pdf . This comes from a completely deterministic
ode. But is looks like I've added a tiny amount of noise.

On a technical note, I'm running Ubuntu 8.04, python2.5.1, matplotlib0.91.2
(with GTKAgg backend).

(Hopefully I didn't miss a similar question--and solution--elsewhere in the
forum.)
My guess is that you may be seeing the antialiasing of your pdf
renderer.  matplotlib has a pretty good antialiasing renderer for the
screen display (antigrain) but your mileage may vary for your pdf
renderer.  Since pdf is a vector output, we have no control over the
renderering.  What pdf viewer are you using?  The best way for us to
see what you are seeing is to take a PNG screenshot of your PDF file
displayed in your viewer and then post the PNG.  Ie, here is what I am
seeing in the Preview app: the fuzziness is from the antialiasing, but
I am used to seeing this.


from pylab import *

x = linspace(0,0.02, 1001) + random(1001)*1e-5
x[-1] = 1

y = ones_like(x)
y[:500:2] = 1 + random(250)*1e-4

clf()
plot(x,y, solid_joinstyle = 'miter')

plot(x,y+0.05, solid_joinstyle = 'round')

ylim(0.9,1.1)
savefig('testnoise.pdf')


<<inline: testnoise-pdf-mag.PNG>>

<<inline: testnoise-agg-lowres.png>>

<<inline: testnoise-agg.png>>

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to