On Tue, Jan 14, 2014 at 12:04 PM, Michael Droettboom <md...@stsci.edu>wrote:
>
> I hope all of the above makes sense...
>
Definitely makes sense: what I've built-up in mpld3 is essentially
something that mimics this sort of visitor pattern, though it misses some
things because of the draw-time difficulties you mention.
I think a two-stage draw() would be a _very_ helpful restructure.
Currently, I'm forced to achieve this result by writing a png to a
throwaway byte-stream...
Jake
>
> Mike
>
>
> On 01/14/2014 01:30 PM, Jacob Vanderplas wrote:
>
> Thanks - we'll make it happen at some point.
>
> Perhaps I can give the seed for a discussion: the stuff I've been doing
> with mpld3 is a lot of fun, but it's fundamentally limited by the fact that
> I have to dig around the internals of the figure object to find the
> relevant information to construct a plot representation. I may be able to
> do the same thing by creating a backend, but the problem is that the draw()
> methods of most objects call the renderer with no reference to whether the
> points lie in the data space or figure space: that is, paths and points are
> usually specified in figure/pixel coordinates or some transformed version
> thereof, which makes it near impossible to construct interactive
> representations absent Python kernel callbacks.
>
> What I'd love to see is some enhancement of the backend framework where
> there are some extra flags and information passed to the renderer: i.e. for
> each draw command, we need to know whether the drawn object should be
> linked to static figure coordinates or to dynamic axes/data coordinates.
>
> I've been in touch with Cyrille Rossant from the vispy team, Chris
> Beaumont from the Glue team, and Matt Sundwuist from the plotly team, all
> of whom asked if there might be a way to use what I've done with mpld3 to
> enable matplotlib to export into their own front-end format. I didn't
> start mpld3 with that sort of extensibility in mind, but I'm starting to
> invest some time thinking about how to design that.
>
> With the current matplotlib package, I think there are two ways to
> accomplish it: one is to create a general backend-like interface based on
> the figure introspection that mpld3 currently uses. The artist elements in
> each figure contain enough information to be able to infer whether the
> elements should move & zoom with the axes or not. The problem is, a lot of
> elements (like legends, axes aspects, etc.) are not fully established until
> the draw() command is called, so there are a few ugly hacks required to
> make it happen.
>
> The other option is to use an even uglier hack, and wrap the current
> backend framework with an object that somehow links back into the figure
> and infers from the draw_*() commands whether the path/point/marker/etc.
> should be drawn in static figure coordinates or in dynamic axes
> coordinates. I've started a simple prototype backend translator which has a
> renderer class that uses ``inspect`` back-trace the stack and accomplish
> this: It's really ugly, and I'm not particularly proud about it, but I
> think it's the current best way to accomplish the desired behavior.
>
> Ugly hacks aside, I think all of this points to a general desire for a
> new type of backend-like hook that can export dynamic plot elements in data
> coordinates, and static plot elements in figure coordinates. An
> enhancement in that direction could pave the way for a lot of interesting
> interactive front-ends to matplotlib figures.
>
> Anyway - if any of you have suggestions or responses to this, I'd love
> to hear them! Thanks,
> Jake
>
>
> On Tue, Jan 14, 2014 at 9:11 AM, Michael Droettboom <md...@stsci.edu>wrote:
>
>> Jake: I'd definitely like to get you into one of these calls at some
>> point. If you're able to pop in late, that would still be great -- or we
>> can save that for another date. Trying to get Japan, three NA timezones
>> and the UK all together is challenging ;)
>>
>> In any event, with Thomas, Ben, Michiel and myself confirmed, I think
>> that's enough to go ahead, and hopefully others who have yet to respond can
>> join as well.
>>
>> Mike
>>
>>
>> On 01/14/2014 11:57 AM, Jacob Vanderplas wrote:
>>
>> I'll probably not be able to swing 6am on the west coast, but other folks
>> are more important for this call, I think :)
>> Jake
>>
>>
>> On Tue, Jan 14, 2014 at 8:51 AM, Benjamin Root <ben.r...@ou.edu> wrote:
>>
>>> That would actually work a little bit better for me... I just have to
>>> remember to get into work a little bit earlier.
>>>
>>> Ben
>>>
>>> On Tue, Jan 14, 2014 at 11:36 AM, Michael Droettboom <md...@stsci.edu>wrote:
>>>
>>>> I'm fine with starting the meeting an hour early. How about others?
>>>>
>>>> Mike
>>>>
>>>> On 01/14/2014 04:57 AM, Michiel de Hoon wrote:
>>>> > I can join this Thursday if we start with the discussion on timers.
>>>> > If we can start 1 hour earlier (14:00 UTC, 9 am ET, 23:00 in Japan)
>>>> that would be even better.
>>>> > -Michiel.
>>>> >
>>>> >
>>>> >
>>>> > --------------------------------------------
>>>> > On Mon, 1/13/14, Michael Droettboom <md...@stsci.edu> wrote:
>>>> >
>>>> > Subject: [matplotlib-devel] Meeting...?
>>>> > To: "matplotlib-devel@lists.sourceforge.net" <
>>>> matplotlib-devel@lists.sourceforge.net>
>>>> > Date: Monday, January 13, 2014, 11:36 AM
>>>> >
>>>> > It's probably a good time to schedule
>>>> > another matplotlib Google Hangout.
>>>> >
>>>> > Is this Thursday at 1500 UTC (10 am ET) too short notice for
>>>> > the usual
>>>> > candidates?
>>>> >
>>>> > I know there was discussion of getting Michiel de Hoon on
>>>> > today (which I
>>>> > just saw, unfortunately). Is there another time in the
>>>> > future that
>>>> > works for you, Michiel?
>>>> >
>>>> > Mike
>>>> >
>>>> > --
>>>> >
>>>> > _
>>>> > |\/|o _|_ _. _ | | \.__ __|__|_|_ _
>>>> > _ ._ _
>>>> > | ||(_| |(_|(/_| |_/|(_)(/_|_ |_|_)(_)(_)| | |
>>>> >
>>>> > http://www.droettboom.com
>>>> >
>>>> >
>>>> >
>>>> ------------------------------------------------------------------------------
>>>> > CenturyLink Cloud: The Leader in Enterprise Cloud Services.
>>>> > Learn Why More Businesses Are Choosing CenturyLink Cloud
>>>> > For
>>>> > Critical Workloads, Development Environments &
>>>> > Everything In Between.
>>>> > Get a Quote or Start a Free Trial Today.
>>>> >
>>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
>>>> > _______________________________________________
>>>> > Matplotlib-devel mailing list
>>>> > Matplotlib-devel@lists.sourceforge.net
>>>> > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>> >
>>>>
>>>>
>>>> --
>>>> _
>>>> |\/|o _|_ _. _ | | \.__ __|__|_|_ _ _ ._ _
>>>> | ||(_| |(_|(/_| |_/|(_)(/_|_ |_|_)(_)(_)| | |
>>>>
>>>> http://www.droettboom.com
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
>>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For
>>>> Critical Workloads, Development Environments & Everything In Between.
>>>> Get a Quote or Start a Free Trial Today.
>>>>
>>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
>>>> _______________________________________________
>>>> Matplotlib-devel mailing list
>>>> Matplotlib-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For
>>> Critical Workloads, Development Environments & Everything In Between.
>>> Get a Quote or Start a Free Trial Today.
>>>
>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
>>> _______________________________________________
>>> Matplotlib-devel mailing list
>>> Matplotlib-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>
>>>
>>
>>
>> --
>> _
>> |\/|o _|_ _. _ | | \.__ __|__|_|_ _ _ ._ _
>> | ||(_| |(_|(/_| |_/|(_)(/_|_ |_|_)(_)(_)| | |
>> http://www.droettboom.com
>>
>>
>
>
> --
> _
> |\/|o _|_ _. _ | | \.__ __|__|_|_ _ _ ._ _
> | ||(_| |(_|(/_| |_/|(_)(/_|_ |_|_)(_)(_)| | |
> http://www.droettboom.com
>
>
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel