On 09/03/2010 09:14 AM, Tony S Yu wrote: > > On Sep 3, 2010, at 10:23 AM, Sébastien Barthélemy wrote: > >> CC to matplotlib-devel& matplotlib-users >> >> 2010/9/3 Tony S Yu<tsy...@gmail.com>: >>> On Sep 3, 2010, at 4:33 AM, Sébastien Barthélemy wrote: >>> >>>> Hello, >>>> >>>> While using sage [1], I got problems drawing a line: for some reason, >>>> the points with negative coordinates are not plotted (or are plotted >>>> on top of others due to an offset problem and thus I cannot see them). >>>> I can only reproduce the bug with specific data sets. >>>> >>>> [1] www.sagemath.org >>>> >>>> I think I could track down the bug to matplotlib, which sage uses to >>>> render 2d plots. >>>> >>>> I included a sage script which generates the data set (in a pickle >>>> file), and a python script which draws the faulty line. >>>> >>>> Usage is : >>>> >>>> $ sage generate_data.sage >>>> $ python test_mpl.py >>>> >>>> I also included the pickled data, thus you don't need sage at all. >>>> I use matplotlib 1.0.0 for python 2.6 on mac os (as provided by macport). >>>> >>>> Could somebody here confirm the problem, and give me a hint about what >>>> is going on? >>> >>> I can confirm the issue. >> >> Great, thank you. I filed a bug: >> https://sourceforge.net/tracker/?func=detail&aid=3058804&group_id=80706&atid=560720 >> >>> This appears to be a drawing bug: when I pan the drawing so that the >>> negative data touches the edge of the axes frame, the rest of the line is >>> drawn. So the line object is being created, but for some reason it's not >>> being drawn correctly. >>> >>> The bug is really finicky: if I plot starting from the 3rd value of your >>> data (i.e. slice xdata, ydata with [2:]), the line is drawn completely. The >>> strange thing is that the first 100 or so data points defines the exact >>> same point, so there's noting special about those first two points. (but >>> this overlaying of data may be related to the bug) >>> >>> I've reproduced the issue on TkAgg, Qt4Agg, and MacOSX backends, so maybe >>> the bug is in backend_bases. (Note: unlike Agg backends, MacOSX backend >>> doesn't show line even after panning the plot) >>> >>> I don't really know how to debug drawing errors like this; so this is as >>> far as can get. > > I'm not sure if I should respond to this email or the bug report, but since I > made the claim here, I'll correct myself here: The bug is not in the drawing > code as I had suggested. > > The bug is related to path simplification. If you turn off path > simplification (e.g. plt.rc('path', simplify=False), the line is drawn in its > entirety. This also explains why the bug disappeared when I trimmed the first > two points: path simplification is triggered from data sets with atleast 128 > points (your data has 129, so trimming two points turned off path > simplification). > > I just wanted to correct my earlier comments. >
Tony, Thanks--it's in a comment added to the bug report. Also, this is the same problem as reported earlier by Jens Nie. The bug is in path_converters.h. I think I found part of it, but a real solution may require more than a changed line or two, and I can't spend more time on it at the moment. Mike D. could figure it out quickly, but I think he is not available right now. Eric > -T > > > > ------------------------------------------------------------------------------ > This SF.net Dev2Dev email is sponsored by: > > Show off your parallel programming skills. > Enter the Intel(R) Threading Challenge 2010. > http://p.sf.net/sfu/intel-thread-sfd > _______________________________________________ > Matplotlib-devel mailing list > Matplotlib-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel ------------------------------------------------------------------------------ This SF.net Dev2Dev email is sponsored by: Show off your parallel programming skills. Enter the Intel(R) Threading Challenge 2010. http://p.sf.net/sfu/intel-thread-sfd _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel