Hey Mike,

> Instead, it would make more sense to make use of the clipping
> algorithm already in matplotlib (and implemented in fast C++) that will
> actually splice the line segments at the boundary.  I've attached a patch
> for this.

Good call. Our main clipping issue that still needs to be resolved is
for markers. This is actually a wider topic since our biggest
performance handicap
is drawing plots with large numbers of markers. Unlike, say SVG, there
is no concept of a predefined shape that we can use in the HTML5
canvas element to create a marker once and then simply copy or
reference for later markers. This is something we will hopefully
investigate at some later date.

> The display at the bottom that says "Cursor at: X, Y" is in pixels, not in
> data units.  It would be great if this could display data units, though
> being general enough to support custom scales (eg. log) and projections (eg.
> polar) may be tricky without making a round-trip to the server.

As you mentioned, the trick is in giving the client some view on how
pixels should map to data values without fetching these for each mouse
movement. For simple cartesian plots this is probably pretty
straightforward. It is something we need to get working for our
internal use so it should get solved at some stage.

> If I resize the plotting area (using either the "+" or "arrows" icon), the
> area where the mouse cursor can draw a zooming rectangle does not seem to be
> updated.

The benefit of external users :) This was an old bug that crept back
in. It has been fixed in the latest commit (along with your clipping
patch).

> Minor point: I seem to get a traceback when "text.usetex" is True.

Fixed in latest commit so that it warns the user that tex is not
currently supported. Another thing to do for the next release :)

> Thinking more broadly -- how difficult would it be to just use the plotting
> area part of the display, and not the plot selection and layout buttons
> along the top?  I think a really great use case of this backend would be to
> embed plots in a web page, and have an interactive plot inline in the
> document.  In that case, the extra layout features may be unnecessary.

There is already some sort of selector in place (you can append a
number onto the base URL to select a specific layout). I think we will
extend this to allow
selection of individual plots with/without extra decorators. Then
other pages could embed these URLs directly as iframes that contain
only the canvas and associated javascript
to display the plot.

I imagine this would also be useful in the context of applications like Sage.

>  Also, (and I'm getting a bit out of my depth here as I haven't done a lot
> of web development), how hard would it be to integrate this inside of a
> WSGI-based webapp, perhaps a Django app?  The standalone server this is nice
> for demos, but I can see this becoming very useful as part of a larger web
> application.

Certainly possible. I imagine that as the WebSocket standard becomes
more prevalent it will get integrated
into existing frameworks. Once this happens then the framework can
associate a specific WebSocket URL with a request
that gets internally redirected to the running mplh5canvas server,
making the user experience a bit more seamless.

Our internal use is certainly heading along similar lines, with the
plots being integrated into a number of container technologies
including Flex
and basic HTML pages. As these new use cases come along we can
evaluate the architecture and integrate things a bit more seamlessly.

Thanks again for the feedback, although we are quite familiar with mpl
as users, we are pretty inexperienced with the backend side, and it
helps a lot to get input from people who know the code well.

Simon

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to