> Please -- Emily and Robert -- don't be at all offended by this email. > You two have both dramatically improved graph plotting in Sage over > what networkx offers, and Emily's predesigned layouts for the graph > families are beautiful. I just think it is important to acknowledge > that on random input graphs plotting has a ways to go.
I'm forwarding what Emily has to say about this, since she's very busy at the moment. Also, I'd like to point out that there are yearly conferences all over the world about graph layout, so it's not exactly a solved problem. That said, many of the issues with Sage drawing graphs are much more basic than the things discussed at these conferences... """ There are a bunch of things I am still messing with on graph plotting and the cutting off of vertices is a priority. It's actually a problem with scatterplots in general that Robert, Mike Hanson and I were talking about at the last Sage Days. Basically, scatterplots set point size as points^2, so there's no way to get the radius of the point in xy-data. Without knowing the radius of the points, the canvas ends up being trimmed too much and cutting off part of the points. Mike was working on plot.py and changing the way canvases are collecting data and drawn. Meanwhile, I think graphs should step away from using scatterplot anyway. There are longterm benefits for this-- one is that eventually we can use matplotolib's patch collection and allow patch-joining, which should significantly cut down on our computations for digraphs with arced edges. The immediate benefit is that it will get rid of the vertex cut-off problem independent of improvements to scatterplot. For example, try plotting small multi-edged digraphs and see that the vertices are never cut off. Those draw a collection of circles instead of a scatterplot, because we need to know the radius to draw the arrow in the right spot. One immediate loss is that we will be back to only allowing circle representation for vertices (currently the scatterplot allows squares, triangles, stars, etc.) but that is something that can be added later on top of a better implementation. Another consideration is timing, but this is something that can also be improved upon in the future (possibly by wrapping/enabling matplotlib's patchcollection). """ --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---