Graph[]
倾向于切断Mathematica中的顶点标签。我正在寻找一个强大的解决方法。
示例:
Graph[{1 -> 2, 2 -> 3, 3 -> 1}, VertexLabels -> "Name"]
我目前的解决方法:
SetOptions[Graph, ImagePadding -> 12]
这不健全,因为ImagePadding
的值需要根据标签大小手动调整。
答案 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]]
虽然这会阻止您同时看到所有标签,但您永远不会有任何剪辑。