23

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

有没有一种快速简便的方法来生产这些?我已经搜索和搜索,但我发现的只是像 GraphViz 这样的解决方案,它们确实比我需要的更强大(因此更难使用)。PGF/Tikz 似乎是我最好的选择,但又似乎有点矫枉过正。

也许我最好的选择是在 Inkscape 中制作它们,或者硬着头皮学习 PGF/Tikz。它们是如此受欢迎,以至于我认为会有一种更简单的方法来生产它们,但也许不是……TIA。

4

5 回答 5

11

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 的默认行为是输出一个版本的输入文件,其中包含每个元素位置的坐标。

输出图像

于 2013-05-02T09:25:03.553 回答
10

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

于 2012-12-06T15:02:42.050 回答
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 。

于 2011-04-12T16:02:54.860 回答
4

我真的很喜欢GLE(图形布局引擎)。这是 Christopher Bishop 在他的《模式识别和机器学习》一书中使用的。它具有包含变量、循环和函数的简单语法,并且支持 TeX 方程。结果输出为 pdf 或 eps,看起来非常漂亮。

有很多示例可用,包括来自 PRML 的贝叶斯网络

于 2014-02-11T05:51:57.490 回答
0

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

于 2021-06-07T13:21:44.597 回答