> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to