用板表示法绘制图形模型的软件

时间:2010-08-11 19:13:08

标签: graphics graphviz pgf

所以我看到在研究论文和在线一直以平板符号表示的图形模型(例如:http://www.cs.princeton.edu/~blei/papers/BleiNgJordan2003.pdf)。

有没有快速简便的方法来制作这些?我进行了搜索和搜索,但我发现的只有GraphViz这样的解决方案,它实际上比我需要的更强大(因此更难以使用)。 PGF / Tikz似乎是我最好的选择,但再次看起来有点矫枉过正。

也许我最好的选择是在Inkscape中制作它们,或者咬紧牙关学习PGF / Tikz。他们是如此受欢迎,我认为会有一种更简单的方式来推销它们,但也许不是...... TIA。

5 个答案:

答案 0 :(得分:10)

这是Dietz脚本的更精致的分支:https://github.com/jluttine/tikz-bayesnet

答案 1 :(得分:9)

查看Laura Dietz提供的优秀Tikz包装,可从http://www.mpi-inf.mpg.de/~dietz/probabilistic-models-tikz.zip获得。 http://www.mpi-inf.mpg.de/~dietz/probabilistic-models-tikz.pdf提供了带有一些示例的pdf。

答案 2 :(得分:9)

GraphViz真的不是那么难学。对于这些类型的图表,基本语言非常简单。我花了一些时间来复制(或多或少)来自pdf的第一个例子,并且它的好处在于,由于它的简单性,从其他数据源程序生成图表非常容易。

Digraph fig1 {
rankdir = LR; //order things from left to right

//define alpha and beta as existing
α [shape=circle];
β [shape=circle];
//not strictly nescessary but helps if you want to
//assign them specific shapes or colours

subgraph cluster_M //names beginning with "cluster" get a box drawn, an odd hack
{
    label = "M"

    θ [shape=circle];
    subgraph cluster_N
    {
        label = "N"
        z [shape=circle];
        w [shape=circle, style=filled]
        z->w; //quite literally z points at w
    }

    θ -> z;
}
α -> θ;
β -> w;
}
编译用     dot -Tpng input.txt -o graph.png 看起来像这样。如果在气泡下面有标签很重要,你可以用几条额外的线来做到这一点,类似地,如果节点的特定位置很重要,你也可以调整它。实际上,如果你没有指定图像格式,dot的默认行为是输出一个输入文件的版本,其坐标是每个元素的位置。

The output image

答案 3 :(得分:4)

我非常喜欢GLE(图形布局引擎)。这就是克里斯托弗·毕晓普在他的书“模式识别和机器学习”中使用的内容。它具有包含变量,循环和函数的简单语法,并且它支持TeX方程。结果输出为pdf或eps,看起来非常好。

有很多examples可用,包括this Bayes net from PRML

答案 4 :(得分:0)

作为对其他答案的补充:我使用的“低技能”方法是在 Google 幻灯片中绘制它们,并添加一些用于生成公式的插件。