Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
From: Will Grover <wgrover@mi...> - 2009-05-26 21:39:06
|
Hello matplotlib users, I'm using matplotlib to plot some large data sets (1 million x,y pairs) and I've noticed that, when zoomed out to view the whole plot, it looks as if only every Nth point is being plotted, maybe in an attempt to improve plotting performance in complex plots. When I zoom in I can see points that were clearly missing in the zoomed-out view. Is there any way to override this so that the plot really does show all the points, regardless of zoom? I've included my really simple plotting code below, and I'm using the "scipy superpack" (python 2.5, matplotlib-0.98.6) on an OS X 10.5.7 Mac. Many thanks for any help! --Will import pylab import smr import sys for freqs, stats, chronos in smr.loadData(sys.argv[1:]): # loads data into numpy.arrays pylab.plot(chronos, freqs) pylab.show() |
From: Michael Droettboom <mdroe@st...> - 2009-05-27 14:08:27
|
You can set the rcParam "path.simplify" to False to turn off this behavior. However, the goal is that the simplification is not noticable -- if it is that may be a bug. Are you able to share your data so I can look into this further? Cheers, Mike Will Grover wrote: > Hello matplotlib users, > > I'm using matplotlib to plot some large data sets (1 million x,y > pairs) and I've noticed that, when zoomed out to view the whole plot, > it looks as if only every Nth point is being plotted, maybe in an > attempt to improve plotting performance in complex plots. When I zoom > in I can see points that were clearly missing in the zoomed-out view. > Is there any way to override this so that the plot really does show > all the points, regardless of zoom? I've included my really simple > plotting code below, and I'm using the "scipy superpack" (python 2.5, > matplotlib-0.98.6) on an OS X 10.5.7 Mac. > > Many thanks for any help! > > --Will > > > > import pylab > import smr > import sys > for freqs, stats, chronos in smr.loadData(sys.argv[1:]): # loads data > into numpy.arrays > pylab.plot(chronos, freqs) > pylab.show() > > ------------------------------------------------------------------------------ > Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT > is a gathering of tech-side developers & brand creativity professionals. Meet > the minds behind Google Creative Lab, Visual Complexity, Processing, & > iPhoneDevCamp as they present alongside digital heavyweights like Barbarian > Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > -- Michael Droettboom Science Software Branch Operations and Engineering Division Space Telescope Science Institute Operated by AURA for NASA |
From: Will Grover <wgrover@mi...> - 2009-05-27 22:32:00
|
Hello Mike, Thanks for the quick reply - I'll try "path.simplify" as you suggest. My actual data is pretty big and unruly, but I wrote a bit of code that demonstrates the point dropping. This code plots three single-point-wide peaks on a baseline of noise that is 'length' points long. For smaller values of 'length' all three points are visible, but for larger values some or all of the points disappear. Maybe it's unrealistic to think that all single-point outliers should always be visible at any scale, but in this case these three points are significantly different from all the baseline points and dropping them obviously makes for a much different looking plot. My actual data doesn't have single-point peaks like this, but it does have ~50-point-wide peaks in a ~1,000,000 point plot, and many of those peaks are routinely shortened or eliminated in the zoomed-out plot of my data, only to reappear when adequately zoomed-in. Tell me if there's any thing else I can provide you with, or if this is just the way things are when plotting big data sets. Thanks again, -- Will ########### import numpy import pylab # When length = 2000, this usually plots all 3 peaks # When length = 5000, this plots 3, 2, 1, or 0 peaks length = 2000 x = numpy.arange(length) y = numpy.random.normal(loc=0.0, scale=1.0, size=length) y[int(length*0.4)] = 100.0 y[int(length*0.5)] = 100.0 y[int(length*0.6)] = 100.0 pylab.plot(x,y) pylab.show() ########### On Wed, May 27, 2009 at 6:32 AM, Michael Droettboom <mdroe@...> wrote: > You can set the rcParam "path.simplify" to False to turn off this behavior. > > However, the goal is that the simplification is not noticable -- if it is > that may be a bug. Are you able to share your data so I can look into this > further? > > Cheers, > Mike > > Will Grover wrote: >> >> Hello matplotlib users, >> >> I'm using matplotlib to plot some large data sets (1 million x,y >> pairs) and I've noticed that, when zoomed out to view the whole plot, >> it looks as if only every Nth point is being plotted, maybe in an >> attempt to improve plotting performance in complex plots. When I zoom >> in I can see points that were clearly missing in the zoomed-out view. >> Is there any way to override this so that the plot really does show >> all the points, regardless of zoom? I've included my really simple >> plotting code below, and I'm using the "scipy superpack" (python 2.5, >> matplotlib-0.98.6) on an OS X 10.5.7 Mac. >> >> Many thanks for any help! >> >> --Will >> >> >> >> import pylab >> import smr >> import sys >> for freqs, stats, chronos in smr.loadData(sys.argv[1:]): # loads data >> into numpy.arrays >> pylab.plot(chronos, freqs) >> pylab.show() >> >> >> ------------------------------------------------------------------------------ >> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a >> gathering of tech-side developers & brand creativity professionals. Meet >> the minds behind Google Creative Lab, Visual Complexity, Processing, & >> iPhoneDevCamp as they present alongside digital heavyweights like Barbarian >> Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com >> _______________________________________________ >> Matplotlib-users mailing list >> Matplotlib-users@... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> > > -- > Michael Droettboom > Science Software Branch > Operations and Engineering Division > Space Telescope Science Institute > Operated by AURA for NASA > > |
From: Eric Firing <efiring@ha...> - 2009-05-27 17:40:08
|
Michael Droettboom wrote: > You can set the rcParam "path.simplify" to False to turn off this behavior. Mike, The matplotlibrc.template indicates that this is effective only for vector backends; is the template comment incorrect? Eric #path.simplify : False # When True, simplify paths in vector backends, such as # PDF, PS and SVG #path.simplify_threshold : 0.1 # The threshold of similarity below which # vertices will be removed in the simplification # process |
From: Michael Droettboom <mdroe@st...> - 2009-05-27 17:43:08
|
Good find. The comment is out of date. It is now followed in all backends. I will update the template. Mike Eric Firing wrote: > Michael Droettboom wrote: >> You can set the rcParam "path.simplify" to False to turn off this >> behavior. > > Mike, > > The matplotlibrc.template indicates that this is effective only for > vector backends; is the template comment incorrect? > > Eric > > #path.simplify : False # When True, simplify paths in vector > backends, such as > # PDF, PS and SVG > #path.simplify_threshold : 0.1 # The threshold of similarity below which > # vertices will be removed in the > simplification > # process > -- Michael Droettboom Science Software Branch Operations and Engineering Division Space Telescope Science Institute Operated by AURA for NASA |