Graph[]
在 Mathematica 中倾向于切断顶点标签。我正在寻找一个强大的解决方法。
例子:
Graph[{1 -> 2, 2 -> 3, 3 -> 1}, VertexLabels -> "Name"]
我目前的解决方法:
SetOptions[Graph, ImagePadding -> 12]
这并不稳健,因为ImagePadding
需要根据标签大小手动调整 的值。
Graph[]
在 Mathematica 中倾向于切断顶点标签。我正在寻找一个强大的解决方法。
例子:
Graph[{1 -> 2, 2 -> 3, 3 -> 1}, VertexLabels -> "Name"]
我目前的解决方法:
SetOptions[Graph, ImagePadding -> 12]
这并不稳健,因为ImagePadding
需要根据标签大小手动调整 的值。
显然FullGraphics
,在Graph
对象上使用将修复剪辑以用于显示,但会牺牲交互性。
根据下面的评论,Show[]
也可以正常工作,并且避免修改图形。
以下是两种可能的解决方法。
放大顶点大小并将标签放置在顶点内。当然,这也取决于标签的长度,但对于较短的标签,它工作得很好,而您上面的示例为顶点 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]]
虽然这会阻止您同时查看所有标签,但您永远不会有任何剪辑。