5

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

例子:

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

Graph[] 切断标签“2”

我目前的解决方法:

SetOptions[Graph, ImagePadding -> 12]

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

4

2 回答 2

2

显然FullGraphics,在Graph对象上使用将修复剪辑以用于显示,但会牺牲交互性。

根据下面的评论,Show[]也可以正常工作,并且避免修改图形。

于 2011-05-09T15:16:22.807 回答
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]]

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

于 2011-05-25T16:30:59.597 回答