Since I suspect this change will be a little bit of work, I just wanted to put my hand up and say I'm looking into it so we don't duplicate effort here.
I think it's a worthwhile experiment, in any case. Mike Andrew Hawryluk wrote: > > I’m really excited about the new path simplification option for vector > output formats. I tried it the first time yesterday and reduced a PDF > from 231 kB to 47 kB. Thanks very much for providing this feature! > > However, I have noticed that the simplified paths often look more > jagged than the original, at least for my data. I can recreate the > effect with the following: > > [start] > > import numpy as np > > import matplotlib.pyplot as plt > > x = np.arange(-3,3,0.001) > > y = np.exp(-x**2) + np.random.normal(scale=0.001,size=x.size) > > plt.plot(x,y) > > plt.savefig('test.png') > > plt.savefig('test.pdf') > > [end] > > A sample output is attached, and close inspection shows that the PNG > is a smooth curve with a small amount of noise while the PDF version > has very noticeable changes in direction from one line segment to the > next. > > <<test.png>> <<test.pdf>> > > The simplification algorithm (agg_py_path_iterator.h) does the following: > > If line2 is nearly parallel to line1, add the parallel component to > the length of line1, leaving it direction unchanged > > which results in a new data point, not contained in the original data. > Line1 will continue to be lengthened until it has deviated from the > data curve enough that the next true data point is considered > non-parallel. The cycle then continues. The result is a line that > wanders around the data curve, and only the first point is guaranteed > to have existed in the original data set. > > Instead, could the simplification algorithm do: > > If line2 is nearly parallel to line1, combine them by removing the > common point, leaving a single line where both end points existed in > the original data > > Thanks again, > > Andrew Hawryluk > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > ------------------------------------------------------------------------ > > _______________________________________________ > Matplotlib-devel mailing list > Matplotlib-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Michael Droettboom Science Software Branch Operations and Engineering Division Space Telescope Science Institute Operated by AURA for NASA ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel