Graph []切断了Mathematica中的顶点标签

时间:2011-05-09 14:26:33

标签: graphics wolfram-mathematica mathematica-8

Graph[]倾向于切断Mathematica中的顶点标签。我正在寻找一个强大的解决方法。

示例:

Graph[{1 -> 2, 2 -> 3, 3 -> 1}, VertexLabels -> "Name"]

Graph[] cuts off the label '2'

我目前的解决方法:

SetOptions[Graph, ImagePadding -> 12]

这不健全,因为ImagePadding的值需要根据标签大小手动调整。

2 个答案:

答案 0 :(得分:2)

显然在FullGraphics对象上使用Graph将修复裁剪以达到显示目的,但会牺牲交互性。

根据下面的评论,Show[]也适用,并避免修改图形。

答案 1 :(得分:1)

以下是两种可能的解决方法。

放大顶点大小并将标签放在顶点内。当然,这也取决于标签的长度,但对于短标签,它可以很好地工作,而上面的示例会剪掉顶点1的多个字符的任何标签。

例如:

Table[Graph[{1 -> 2, 2 -> 3, 3 -> 1}, VertexSize -> 0.3, 
    VertexLabels -> Table[i -> 
       Placed["vertex" <> ToString[i], p], {i, 3}],
    VertexShapeFunction -> "Square", PlotLabel -> p], 
 {p, {Left, Top, Right, Bottom, Center}}]

使用工具提示存储标签,而不是在图形上显示标签。 [编辑:中心可能看起来最好,然后如果需要,可以通过在字符串中放置\ n来包装标签,但同样取决于标签长度。]

例如:

Graph[{1 -> 2, 2 -> 3, 3 -> 1}, VertexLabels -> Placed["Name", Tooltip]]

虽然这会阻止您同时看到所有标签,但您永远不会有任何剪辑。