Graph [] отсекает метки вершин в Mathematica - PullRequest
5 голосов
/ 09 мая 2011

Graph[] имеет тенденцию обрезать метки вершин в Mathematica. Я ищу надежный обходной путь.

Пример:

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

Graph[] cuts off the label '2'

Мой нынешний обходной путь:

SetOptions[Graph, ImagePadding -> 12]

Это не надежно, потому что значение ImagePadding необходимо настраивать вручную в зависимости от размера этикетки.

Ответы [ 2 ]

2 голосов
/ 09 мая 2011

Очевидно, использование FullGraphics на объекте Graph исправит ограничение для цели отображения за счет интерактивности.

Согласно приведенному ниже комментарию, Show[] также работает и избегаетизменение графики.

1 голос
/ 25 мая 2011

Вот два возможных обходных пути.

Увеличьте размер вершины и поместите метки внутри вершины. Конечно, это также зависит от длины меток, но для коротких меток это работает хорошо, в то время как ваш пример выше обрезает любую метку из более чем одного символа для вершины 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]]

Хотя это лишает вас возможности видеть все ярлыки одновременно, у вас никогда не будет отсечения.

...