在graphviz中使用符号字体/数学符号 [英] Using symbol font / math notation in graphviz

查看:858
本文介绍了在graphviz中使用符号字体/数学符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用,我想生成类似于下面代表一个结构方程模型(好吧,这里只是一个简单的单因子测量模型)。我希望使用希腊字母来表示一些节点和边,如果我可以在像 \ksi ,<$这样的点文件中使用类似LaTeX的符号, c $ c> \ lambda_1 或 \delta_1





这张图应该代表三个方程

  \begin {eqnarray *} 
x_ {1i}& =& \lambda_1 \xi_ {i} + \delta_ {1i} \\
x_ {2i}& =& \lambda_2 \xi_ {i} + \delta_ {2i} \\
x_ {3i}& =& \lambda_3 \xi_ {i} + \delta_ {3i}
\end {eqnarray *}

最接近我的是以下.dot文件kludge,其中
选择font =Symbol,并用罗马等值替换希腊字母。然而,这不适用于 dot -Tpdf 或AFAICS其他任何其他设备
以外的设备。 Postscript dot -Tps ,给我一个 .eps 文件我必须转换为PDF或PNG。



问题:这种情况有什么更好的办法?

  digraph threevar {
rankdir = LR;
size =8,4;
节点[fontname =Helveticafontsize = 14 shape = box];
edge [fontname =Symbolfontsize = 10];
center = 1;
{rank = min k}
{rank = same X1 X2 X3}
{rank = max z1 z2 z3}
z1 [shape = circle fontname =Symbollabel = D1];
z2 [shape = circle fontname =Symbollabel =d2];
z3 [shape = circle fontname =Symbollabel =d3];
k [fontname =Symbollabel =xshape =ellipse];
k - > X1 [label =l1];
k - > X2 [label =l2];
k - > X3 [label =l3];
z1 - > X1;
z2 - > X2;
z3 - > X3;

$ / code>


解决方案

好的,直接使用UTF8字符在.dot文件中,我现在可以避免符号字体kludge(但是我尝试了下标,例如下标一,
x2081只有一个包含'2081'的小方块)

以下是修改后的文件,现在可用于 -Tpdf -Tpng 。 (UTF8字符在这篇文章中没有正确显示。)

  digraph threevar {
rankdir = LR;
size =8,4;
节点[fontsize = 14 shape = box];
edge [fontsize = 10];
center = 1;
{rank = min k}
{rank = same X1 X2 X3}
{rank = max z1 z2 z3}
z1 [shape = circle label =d1];
z2 [shape = circle label =d2];
z3 [shape = circle label =d3];
k [label =?形状= 椭圆];
k - > X1 [label =?1];
k - > X2 [label =?2];
k - > X3 [label =?3];
z1 - > X1;
z2 - > X2;
z3 - > X3;

$ / code $ / pre
$ b $ p结果是:


[Environment: graphviz 2.38 / Windows 7]

Using dot, I want to produce path diagrams like the following to represent a structural equation model (well, here, just a simple one-factor measurement model). I'd like to use Greek letters for some nodes and edges, and would actually prefer if I could use LaTeX-like notation in the dot file like \ksi, \lambda_1 or \delta_1

This diagram is supposed to represent the three equations

\begin{eqnarray*}
x_{1i} & = & \lambda_1 \xi_{i} + \delta_{1i} \\
x_{2i} & = & \lambda_2 \xi_{i} + \delta_{2i} \\
x_{3i} & = & \lambda_3 \xi_{i} + \delta_{3i} 
\end{eqnarray*}

The closest I've come to this is the following .dot file kludge, where I chose font="Symbol" and replaced the Greek letters by their roman equivalents.

However, this doesn't work with dot -Tpdf or AFAICS any other devices other than Postscript dot -Tps, giving me an .eps file I have to convert to PDF or PNG.

Question: is there anything better for this situation?

digraph threevar {
  rankdir=LR;
  size="8,4";
  node [fontname="Helvetica" fontsize=14 shape=box];
  edge [fontname="Symbol" fontsize=10];
  center=1;
  {rank=min k }
  {rank=same X1 X2 X3 }
  {rank=max z1 z2 z3 }
  z1 [shape=circle fontname="Symbol" label="d1"];
  z2 [shape=circle fontname="Symbol" label="d2"];
  z3 [shape=circle fontname="Symbol" label="d3"];
  k [fontname="Symbol" label="x" shape="ellipse"];
  k -> X1 [label="l1"];
  k -> X2 [label="l2"];
  k -> X3 [label="l3"];
  z1 -> X1;
  z2 -> X2;
  z3 -> X3;
}

解决方案

OK, using UTF8 characters directly in the .dot file, I can now avoid the Symbol font kludge (but what I tried for subscripts, e.g., subscript-one, x2081 just have a small box containing '2081')

Here's the revised file, that now works with both -Tpdf and -Tpng. (The UTF8 characters don't appear properly in this post.)

    digraph threevar {
      rankdir=LR;
      size="8,4";
      node [fontsize=14 shape=box];
      edge [fontsize=10];
      center=1;
      {rank=min k }
      {rank=same X1 X2 X3 }
      {rank=max z1 z2 z3 }
      z1 [shape=circle label="d1"];
      z2 [shape=circle label="d2"];
      z3 [shape=circle label="d3"];
      k [label="?" shape="ellipse"];
      k -> X1 [label="?1"];
      k -> X2 [label="?2"];
      k -> X3 [label="?3"];
      z1 -> X1;
      z2 -> X2;
      z3 -> X3;
    }

The result is:

这篇关于在graphviz中使用符号字体/数学符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆