On Sunday, February 10, 2013 6:03:17 AM UTC+1, matt dash wrote:
> wrote in message <8ad19955-4349-4ed0-957a-91218550e3b9@googlegroups.com>...
>
> > Hi NG,
>
> >
>
> > I have an axis in which I plot two data sets as bar plots. I have a loop that loads one set, plots it and then loads the next and plots it. The X-values are common to both sets. All good, but in some cases a value of the second set is higher than the first, causing it to cover the first bar that was plotted at that x-position. Is there a way to traverse through the graphic objects and then "move up" a shorter bar so that is in front? As far as I can see, the individual patches (bars) do not have handles, so how to get to them?
>
> >
>
> > Thanks very much in advance!
>
> >
>
> > JS
>
> >
>
> > PS I know that I could of course test both values for each x-value and then simply plot the tallest first, but that is not a very elegant solution IMO..
>
>
>
> You could just use the bars' zdata property... set the zdata equal to the negative of the bar height (which should be the max of its ydata property). Then taller bars will be further away --> behind. (You may need to repmat this value to make zdata the same dimensions as xdata/ydata.)
Hi Matt,
Sorry - this fell out of the top so fast that I didn't see your answer. It might work - I'll give it a try.
JS
> wrote in message <8ad19955-4349-4ed0-957a-91218550e3b9@googlegroups.com>...
>
> > Hi NG,
>
> >
>
> > I have an axis in which I plot two data sets as bar plots. I have a loop that loads one set, plots it and then loads the next and plots it. The X-values are common to both sets. All good, but in some cases a value of the second set is higher than the first, causing it to cover the first bar that was plotted at that x-position. Is there a way to traverse through the graphic objects and then "move up" a shorter bar so that is in front? As far as I can see, the individual patches (bars) do not have handles, so how to get to them?
>
> >
>
> > Thanks very much in advance!
>
> >
>
> > JS
>
> >
>
> > PS I know that I could of course test both values for each x-value and then simply plot the tallest first, but that is not a very elegant solution IMO..
>
>
>
> You could just use the bars' zdata property... set the zdata equal to the negative of the bar height (which should be the max of its ydata property). Then taller bars will be further away --> behind. (You may need to repmat this value to make zdata the same dimensions as xdata/ydata.)
Hi Matt,
Sorry - this fell out of the top so fast that I didn't see your answer. It might work - I'll give it a try.
JS