[Latex] - 创建加权图

时间:2016-01-04 18:10:57

标签: graph latex

我需要创造一个人 关于乳胶的图表。 我得到了6k +顶点。

我找到了手册,但是用于法语。 我找到了下面的脚本,但有一些我不明白的东西。

有一种简单的方法可以让我声明Vertex / Edge而无需写入顶点的位置吗?

在这个脚本中,这一行意味着什么?

\Vertex{P}
  \NOEA(P){B}  \SOEA(P){M} \NOEA(B){D}
  \SOEA(B){C}  \SOEA(C){L}

完整脚本

\documentclass[11pt]{scrartcl}
\usepackage{tkz-graph}


\begin{document}
\begin{tikzpicture}
 \SetUpEdge[lw         = 1.5pt,
            color      = orange,
            labelcolor = white]
  \GraphInit[vstyle=Normal] 
  \SetGraphUnit{3}
  \tikzset{VertexStyle/.append  style={fill}}
  \Vertex{P}
  \NOEA(P){B}  \SOEA(P){M} \NOEA(B){D}
  \SOEA(B){C}  \SOEA(C){L}
  \tikzset{EdgeStyle/.style={->}}
  \Edge[label=$3$](C)(B)
  \Edge[label=$10$](D)(B)
  \Edge[label=$10$](L)(M)
  \Edge[label=$10$](B)(P)
  \tikzset{EdgeStyle/.style={<->}}
  \Edge[label=$4$](P)(M)
  \Edge[label=$9$](C)(M)
  \Edge[label=$4$](C)(L)
  \Edge[label=$5$](C)(D)
  \Edge[label=$10$](B)(M)
  \tikzset{EdgeStyle/.style={<->,relative=false,in=0,out=60}}
  \Edge[label=$11$](L)(D)
\end{tikzpicture}
\end{document}

1 个答案:

答案 0 :(得分:0)

如果有大量的顶点,我建议您使用Graphviz Dot而不是Latex软件包,而不是使用上面描述的Latex软件包。另请注意,有一个乳胶包(dot2tex)将您的Graphviz Dot代码包含在乳胶中;包裹在PGF/TikZ环境中以创建一个整洁的矢量图形图像(但是对于一个巨大的图形,我鼓励您使用graphviz在外部渲染它,只需在您的.tex文档中包含图像)。

Graphviz Dot的语法非常简单,可以用编程方式编写(因为我假设你不会手动编写6k顶点...)。

例如,使用Graphviz Dot以编程方式生成以下分支和价格树。

Branch-and-Price Tree

digraph BST {
    node [color = "black", shape = "point"]; 
    edge [arrowsize = "0.1"];
1->2;
2 [color = "blue"];
1->3;
3 [color = "blue"];
1 [color = "black"];
3->4;
4 [color = "blue"];
3->5;

...

}

有关详细信息,请参阅Graphviz DOT documentation,有关最短路径问题的小实例的自动生成图示例,请参阅