r - 点边标签中的下标和希腊字母

标签 r math fonts graphviz dot

这是 Using symbol font / math notation in graphviz 的跟进,并且还发布在 Graphviz 讨论论坛上,http://www.graphviz.org/content/subscripts-greek-letters-dot-edge-labels ,但一直没有回应。

[环境:graphviz 2.38,Windows 7]

我正在开展一个项目,使用 sem 在 R 中为结构方程模型创建路径图包裹 sem 包包含一个函数 pathDiagram,它通过为 dot 构建所需的代码来相当好地完成这项工作。

我们使用两个后端渲染器:点本身,带有 -Tpdf 和 R DiagrammeR package ,它使用 javascript 库 grViz 和 mermaid。

我们最近添加了代码以允许使用希腊字母和下标渲染边缘标签,通过 使用 UTF-8 字符等价物,例如

"beta" "β" "β"
"gamma" "γ" "γ"

subscripts <- c("₀", "₁", "₂", "₃", "₄", "₅", "₆",
"₇", "₈", "₉")

我们发现这与 DiagrammeR 完美配合。使用点,我们确实得到了希腊字母,但是 我们没有尝试过让我们从标准命令中获取下标 点-T pdf -o file.pdf file.dot 我们得到的只是那些带有 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="&#947;&#770;&2081;&2082;=-0.09" color=red penwidth=1.001];
  "y1" -> "y2" [label="&#946;&#8322;&#8321;=-0.28" color=red penwidth=1.001];
  "x2" -> "y2" [label="&#947;&#8322;&#8322;=0.06" color=black penwidth=1.001];
  "y1" -> "y3" [label="&#946;&#8323;&#8321;=-0.22" color=red penwidth=1.001];
  "y2" -> "y3" [label="&#946;&#8323;&#8321;=0.85" color=black penwidth=1.001];
  "x1" -> "y3" [label="&#947;&#8323;&#8321;=0.86" color=black penwidth=1.001];
  "x1" -> "x2" [label="&#963;&#8321;&#8322;=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)

enter image description here

(在此示例中,我还尝试使用 Unicode 字符作为 x2 -> y1 路径中的下标,这些取自 How to find the unicode of the subscript alphabet? ,但这些只是显示为它们的 &2081; 字符串。)

最佳答案

您可以考虑使用 Html-like labelsSUB标记而不是 html 转义字符。

例子:

1 -> 2 [label=<&#947;<SUB>0</SUB>>];

关于r - 点边标签中的下标和希腊字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30507085/

相关文章:

r - Knit & rmarkdown::render() 产生不同的结果(kable 格式;PDF)

r - 数字格式,写 1e-5 而不是 0.00001

c# - 找到给定数字的所有因素的最佳方法

c++ - 指数的前 n 位

android - 在 Android 上无法正确查看乌尔都语字体

r - 在ggplot中展开分类x轴

r - glmnet 如何计算最大 lambda 值?

javascript - 如何进行舍入误差最小的百分比分布

winforms - 将控件定位在 CheckBox 的中间

python-2.7 - 使用 PIL 绘制多语言文本并保存为 1 位和 8 位位图