Это продолжение Использование символьного шрифта/математической нотации в графическом представлении, а также был размещен на дискуссионном форуме Graphviz, http://www.graphviz.org/content/subscripts-greek-letters-dot-edge-labels, но ответа не последовало.
[Окружающая среда: графвиз 2.38, Windows 7]
Я работаю над проектом по созданию схем путей для моделей структурных уравнений в R с Пакет sem Пакет sem содержит функцию pathDiagram, которая делает это довольно хорошо, создавая требуемый код для точки.
Мы используем два внутренних рендерера: сам dot с параметром -Tpdf и пакет R DiagrammeR. , который использует библиотеки javascript grViz и mermaid.
Недавно мы добавили код, позволяющий отображать метки ребер с использованием греческих букв и нижних индексов, используя эквиваленты символов UTF-8, например
"beta" "β" "β"
"gamma" "γ" "γ"
и
subscripts <- c("₀", "₁", "₂", "₃", "₄", "₅", "₆",
"₇", "₈", "₉")
Мы обнаружили, что это прекрасно работает с DiagrammeR. С точкой мы действительно получаем греческие буквы, но ничто из того, что мы пробовали, не позволяет нам получать индексы из стандартной команды dot -T pdf -o файл.pdf файл.точка Все, что мы получаем, это эти маленькие квадратики с 4-значным кодом.
Это баг или ограничение точки? Есть ли обходной путь?
Вот пример точечного файла, созданного нашим программным обеспечением, который иллюстрирует это поведение.
digraph "union.sem" {
rankdir=LR;
size="8,8";
node [fontname="Helvetica" fontsize=14 fillcolor="transparent" shape=box style=filled];
edge [fontname="Helvetica" fontsize=10];
center=1;
{rank=min "x1"}
{rank=min "x2"}
"y1" [fillcolor="transparent"]
"y2" [fillcolor="transparent"]
"y3" [fillcolor="transparent"]
"x2" -> "y1" [label="γ̂&2081;&2082;=-0.09" color=red penwidth=1.001];
"y1" -> "y2" [label="β₂₁=-0.28" color=red penwidth=1.001];
"x2" -> "y2" [label="γ₂₂=0.06" color=black penwidth=1.001];
"y1" -> "y3" [label="β₃₁=-0.22" color=red penwidth=1.001];
"y2" -> "y3" [label="β₃₁=0.85" color=black penwidth=1.001];
"x1" -> "y3" [label="γ₃₁=0.86" color=black penwidth=1.001];
"x1" -> "x2" [label="σ₁₂=7.14" dir=both color=black penwidth=1.001];
// variable labels:
"y1" [label="Deference"];
"y2" [label="Activism"];
"y3" [label="Sentiment"];
"x1" [label="Years"];
"x2" [label="Age"];
}
И результат (используя -Tpng)
(В этом примере я также попытался использовать символы Unicode для индексов в пути x2 -> y1
, взятых из Как найти Unicode нижнего индекса алфавита?, но они просто отображаются как их &2081;
строки.)
fontname="Helvetica"
для краев, но удаление этого дает тот же результат. - person user101089   schedule 28.05.2015