On Mon, Sep 28, 2009 at 4:15 PM, Uri Laserson <[email protected]> wrote:
> On Mon, Sep 28, 2009 at 16:03, Michael Droettboom <[email protected]> wrote:
>> If I understand correctly, the top and bottom of the box are in data
>> coordinates, the x-center of the box is in data coordinates, only the width
>> of the box is in axes coordinates.  Is that correct?  If so, a
>
> That's exactly correct.
>

I personally think that a box, whose height has a physical meaning (in
data coordinate) while its width does not, is not a good
representation of your data. A vertical line or something like
errorbar seems to be more suitable to me.

>> PolyCollection won't be able to do this (directly), since that would require
>> both the width and height to be in axes coordinates.
>
> In principle, could you use a blended tranform for that?  Eitherway, I
> don't think it would work, because the patch objects would be drawn to
> specific Axes coords.  If the scale is changed (e.g, by switching to
> log scale), then what would prompt the Axes coords to be recalculated?
>  I was thinking earlier that I could compose the transData and
> transAxes.inverse transforms to recalculate where the new Axes coord
> should be, but Mike thought this approach would fail (though I'm still
> not exactly sure why, no doubt because of my own ignorance).
>

As Mike has explained, the transform trick (blended or not) won't
work. The width and y-center will be always transformed with the same
transform, which is not what you want. I think you need to create a
custom patch class for this to work. One option seems to subclass the
Rectangle class and overide the _update_patch_transform method. The
patch transform is used to transform a unit rectangle to a rectangle
in data coordinate (or whatever coordinate the patch uses), i.e., you
need to calculate the coordinate of the box in the data coordinate(or
whatever coordinate the patch uses).

-JJ

> Uri
>
>>
>> Mike
>>
>> Eric Firing wrote:
>>>
>>> Uri Laserson wrote:
>>>
>>>>
>>>> Is it possible to specify a path object that will use different
>>>> transforms for different vertices?
>>>>
>>>> This is again related to plotting a box whose height is specified by
>>>> data coords, but whose width is a constant in axes coords regardless
>>>> of scale (so linear and log x-scales would produce a box of the same
>>>> width).
>>>>
>>>> Ideally, I would draw a path like this:
>>>> 1. the center of the box would be located at x and bottom and top
>>>> would be y1, y2, all in data coords
>>>> 2. I would move to (x,y1) at the bottom-center of the box.
>>>> 3. The x value would now need to be converted to Axes coords, possibly
>>>> by applying transData + transAxes.inverted
>>>> 4. I would want to draw a line to (x-0.1, y1) where x is now in axes
>>>> coords and y is still in data coords.  Then up, then right, then down,
>>>> and then close the polygon.
>>>>
>>>> How do I implement this?
>>>>
>>>
>>> I must be missing something, because I still don't see why you can't do
>>> all this very simply by using a PolyCollection, with the vertices in axes
>>> coordinates and the offset in data coordinates.
>>>
>>> Eric
>>>
>>>
>>>>
>>>> As I mentioned before, a blended transform would allow me to make the
>>>> moves i am interested in.  However, a change of scale would change the
>>>> correspondence between data and axes coords, so the axes transform
>>>> part of the blended axes would have to be recomputed everytime the
>>>> scale changes based on where the (x,y1) point lands in the axes.  Is
>>>> this correct?
>>>>
>>>> Any suggestions are welcome...thanks!
>>>>
>>>> Uri
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
>>> is the only developer event you need to attend this year. Jumpstart your
>>> developing skills, take BlackBerry mobile applications to market and stay
>>> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
>>> http://p.sf.net/sfu/devconf
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>
>>
>> --
>> Michael Droettboom
>> Science Software Branch
>> Operations and Engineering Division
>> Space Telescope Science Institute
>> Operated by AURA for NASA
>>
>>
>
>
>
> --
> Uri Laserson
> PhD Candidate, Biomedical Engineering
> Harvard Medical School (Genetics)
> Massachusetts Institute of Technology (Mathematics)
> phone +1 917 742 8019
> [email protected]
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
> http://p.sf.net/sfu/devconf
> _______________________________________________
> Matplotlib-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to