ok, maybe it is in scale.py :) And what I see there confirms my initial fears : the log scale transform applies a log to the argument, which is incorrect for an error..... So first of all, another transform needs to be created so that erry is transformed into erry/y/log(base) where base was 10 in my example.
past midnight here.... I will see tomorrow if I find time to try out a patch (not the easiest entry point for starting developer's activities in MPL I am afraid....) Johann Cohen-Tanugi Johann wrote: > hello, > for the sake of concreteness, here is an example without any limit > issues : the python script is attached and the 2 resulting figures as > well. The dirst one is drawn using log directly in the arguments, and > correctly transforming the y-errors into y-errors/y-values/log(10). > In the second figure, I use the log scaling in x and y. Clearly > something goes wrong with plotting the error bars, and the y-scale > limits also seem ill chosen.... > > HTH debugging this. I looked again at the code, but I am decidedly > lost as to where the error bar plotting occurs, and where it gets > modified by the log scale request. > > Johann > > > Cohen-Tanugi Johann wrote: >> hello..... Anyone? I would very much love to see this fixed, and I am >> ready to help out, but I do not know how to browse through the code. >> Despite the fact that log(errors) should of course not be used, but >> rathter errors/values/log(10), Michael's point still remains : >> values- errors in log scale can be negative, so that the artist >> should just draw a bar until the lower limit of the vertical bar. I >> would say that this is the standard practice. >> Sorry for my previous email beside the point. >> Johann >> >> Cohen-Tanugi Johann wrote: >>> I tried to look at the code (axes.py I presume) in order to attempt >>> a patch, but it defeated me, I do not have the instructions to >>> navigate through this code :) >>> Where is the actual transform of the error bars occurring? >>> thanks, >>> Johann >>> >>> Michael Droettboom wrote: >>> >>>> I have to say I don't really have a lot of experience with error >>>> bars on log plots -- but the root cause here is that the lower >>>> bound of the error bar goes negative, and as we all know, the log >>>> of a negative number is undefined. If you can suggest where the >>>> lower bound should be drawn or provide third-party examples, I'm >>>> happy to look into this further and resolve this "surprise". >>>> >>>> Mike >>>> >>>> Cohen-Tanugi Johann wrote: >>>> >>>>> yes exactly.... >>>>> I should have provided a test case, thanks for following up! >>>>> Johann >>>>> >>>>> Matthias Michler wrote: >>>>> >>>>> >>>>>> Hello Johann, >>>>>> >>>>>> is the problem you are reporting the one I observe in the >>>>>> attached picture? Namely some vertical and horizontal lines are >>>>>> missing when using yscale="log". More precisely everything below >>>>>> y=1 seems to be missing. >>>>>> >>>>>> The picture was generated with the code below and >>>>>> matplotlib.__version__ = '0.98.6svn' >>>>>> matplotlib.__revision__ = '$Revision: 6887 $' >>>>>> >>>>>> best regards Matthias >>>>>> >>>>>> ############################### >>>>>> import numpy as np >>>>>> import matplotlib.pyplot as plt >>>>>> >>>>>> plt.subplot(111, xscale="log", yscale="log") >>>>>> x = 10.0**np.linspace(0.0, 2.0, 20) >>>>>> y = x**2.0 >>>>>> plt.errorbar(x, y, xerr=0.1*x, yerr=5.0+0.75*y) >>>>>> plt.show() >>>>>> ################################ >>>>>> On Friday 27 March 2009 16:12:12 Cohen-Tanugi Johann wrote: >>>>>> >>>>>>> Hello, what is the best way to get log log plots with error bars? I >>>>>>> tried putting log10() everywhere but as I was afraid results >>>>>>> look ugly.... >>>>>>> thanks, >>>>>>> johann >>>>>>> >>>>>>> ------------------------------------------------------------------------ >>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------------------------------------------------ >>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------------------------------------------------------ >>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------------------------------------------------ >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Matplotlib-users mailing list >>>>>>> Matplotlib-users@lists.sourceforge.net >>>>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>>>>>> >>>>> ------------------------------------------------------------------------------ >>>>> >>>>> >>>>> _______________________________________________ >>>>> Matplotlib-users mailing list >>>>> Matplotlib-users@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>>>> >>> >>> ------------------------------------------------------------------------------ >>> >>> >>> _______________________________________________ >>> Matplotlib-users mailing list >>> Matplotlib-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>> > > ------------------------------------------------------------------------ > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > ------------------------------------------------------------------------ > > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users ------------------------------------------------------------------------------ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users