From: Neal B. <ndb...@gm...> - 2013-01-27 14:56:39
|
Simple example: the bars on the two x axis ends are not visible. x = [3, 6, 10] y = [1, 2, 3] import matplotlib.pyplot as plt plt.errorbar (x, y, 0.2) plt.show() |
From: Damon M. <dam...@gm...> - 2013-01-27 17:45:03
|
On Sun, Jan 27, 2013 at 8:56 AM, Neal Becker <ndb...@gm...> wrote: > Simple example: the bars on the two x axis ends are not visible. > > x = [3, 6, 10] > y = [1, 2, 3] > import matplotlib.pyplot as plt > > plt.errorbar (x, y, 0.2) Try adding a plt.xlim(2, 11) here. > plt.show() > > > > ------------------------------------------------------------------------------ > Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, > MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current > with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft > MVPs and experts. ON SALE this month only -- learn more at: > http://p.sf.net/sfu/learnnow-d2d > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Damon McDougall http://www.damon-is-a-geek.com Institute for Computational Engineering Sciences 201 E. 24th St. Stop C0200 The University of Texas at Austin Austin, TX 78712-1229 |
From: Neal B. <ndb...@gm...> - 2013-01-27 17:54:56
|
Damon McDougall wrote: > On Sun, Jan 27, 2013 at 8:56 AM, Neal Becker > <ndb...@gm...> wrote: >> Simple example: the bars on the two x axis ends are not visible. >> >> x = [3, 6, 10] >> y = [1, 2, 3] >> import matplotlib.pyplot as plt >> >> plt.errorbar (x, y, 0.2) > > Try adding a plt.xlim(2, 11) here. > >> plt.show() >> Yes that'll fix it - but ideally autoscaling should work correctly. |
From: Damon M. <dam...@gm...> - 2013-01-27 18:25:51
|
On Sun, Jan 27, 2013 at 11:51 AM, Neal Becker <ndb...@gm...> wrote: > Damon McDougall wrote: > >> On Sun, Jan 27, 2013 at 8:56 AM, Neal Becker >> <ndb...@gm...> wrote: >>> Simple example: the bars on the two x axis ends are not visible. >>> >>> x = [3, 6, 10] >>> y = [1, 2, 3] >>> import matplotlib.pyplot as plt >>> >>> plt.errorbar (x, y, 0.2) >> >> Try adding a plt.xlim(2, 11) here. >> >>> plt.show() >>> > Yes that'll fix it - but ideally autoscaling should work correctly. That behaviour of autoscale appears to be consistent with plt.plot(range(3)), for example. That is, the axis limits butt up against the plotted data. By 'work correctly', do you mean that the axis limits should be padded so there is a whitespace border surrounding the data being plotted? -- Damon McDougall http://www.damon-is-a-geek.com Institute for Computational Engineering Sciences 201 E. 24th St. Stop C0200 The University of Texas at Austin Austin, TX 78712-1229 |
From: Neal B. <ndb...@gm...> - 2013-01-27 18:28:59
|
Damon McDougall wrote: > On Sun, Jan 27, 2013 at 11:51 AM, Neal Becker > <ndb...@gm...> wrote: >> Damon McDougall wrote: >> >>> On Sun, Jan 27, 2013 at 8:56 AM, Neal Becker >>> <ndb...@gm...> wrote: >>>> Simple example: the bars on the two x axis ends are not visible. >>>> >>>> x = [3, 6, 10] >>>> y = [1, 2, 3] >>>> import matplotlib.pyplot as plt >>>> >>>> plt.errorbar (x, y, 0.2) >>> >>> Try adding a plt.xlim(2, 11) here. >>> >>>> plt.show() >>>> >> Yes that'll fix it - but ideally autoscaling should work correctly. > > That behaviour of autoscale appears to be consistent with > plt.plot(range(3)), for example. That is, the axis limits butt up > against the plotted data. > > By 'work correctly', do you mean that the axis limits should be padded > so there is a whitespace border surrounding the data being plotted? > I think you'll agree the original result in not visually appealing or clear. The most obvious way to improve it would be to select axis limits a bit larger. At least large enough to completely show the error bar; I suspect a bit of whitespace would be even more clear. |
From: Damon M. <dam...@gm...> - 2013-01-27 19:15:25
|
On Sun, Jan 27, 2013 at 12:28 PM, Neal Becker <ndb...@gm...> wrote: > Damon McDougall wrote: > >> On Sun, Jan 27, 2013 at 11:51 AM, Neal Becker >> <ndb...@gm...> wrote: >>> Damon McDougall wrote: >>> >>>> On Sun, Jan 27, 2013 at 8:56 AM, Neal Becker >>>> <ndb...@gm...> wrote: >>>>> Simple example: the bars on the two x axis ends are not visible. >>>>> >>>>> x = [3, 6, 10] >>>>> y = [1, 2, 3] >>>>> import matplotlib.pyplot as plt >>>>> >>>>> plt.errorbar (x, y, 0.2) >>>> >>>> Try adding a plt.xlim(2, 11) here. >>>> >>>>> plt.show() >>>>> >>> Yes that'll fix it - but ideally autoscaling should work correctly. >> >> That behaviour of autoscale appears to be consistent with >> plt.plot(range(3)), for example. That is, the axis limits butt up >> against the plotted data. >> >> By 'work correctly', do you mean that the axis limits should be padded >> so there is a whitespace border surrounding the data being plotted? >> > > I think you'll agree the original result in not visually appealing or clear. > The most obvious way to improve it would be to select axis limits a bit larger. > At least large enough to completely show the error bar; I suspect a bit of > whitespace would be even more clear. Indeed, I do agree. I have actually changed my mind about this behaviour being consistent with plt.plot. I feel like the 'feet' on the error bars should be taken into account during the autoscaling procedure. This will result in the autoscaling procedure adding a small amount of whitespace such that the feet are then visible after a call to plt.show(). I have opened a new issue on our github issue tracker. See https://github.com/matplotlib/matplotlib/issues/1711 Thanks for reporting the problem, Neal. -- Damon McDougall http://www.damon-is-a-geek.com Institute for Computational Engineering Sciences 201 E. 24th St. Stop C0200 The University of Texas at Austin Austin, TX 78712-1229 |