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