Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用限制表示深度的Graphviz创建图形_Graphviz_Dot - Fatal编程技术网

使用限制表示深度的Graphviz创建图形

使用限制表示深度的Graphviz创建图形,graphviz,dot,Graphviz,Dot,我有一个.dot文件,它编码了一个具有很多级别的二叉决策树。为了使它可视化,我使用命令dot-tpngsample.dot>sample.png。但是created.png文件非常庞大,很难理解。因此,我想知道是否有可能限制从命令行输出文件中呈现的级别数,也就是说,我不想修改-dot文件,我只想调整.png输出的生成方式。我读了那本书,但什么也找不到 例如,如果我只想要决策树的前三级,是否有类似的修改器:dot-Tpng sample.dot>sample.png-l3?您不能使用dot仅显示图

我有一个.dot文件,它编码了一个具有很多级别的二叉决策树。为了使它可视化,我使用命令
dot-tpngsample.dot>sample.png
。但是created.png文件非常庞大,很难理解。因此,我想知道是否有可能限制从命令行输出文件中呈现的级别数,也就是说,我不想修改-dot文件,我只想调整.png输出的生成方式。我读了那本书,但什么也找不到


例如,如果我只想要决策树的前三级,是否有类似的修改器:
dot-Tpng sample.dot>sample.png-l3

您不能使用
dot
仅显示图形的一部分,但您可以使用
gvpr
以编程方式编辑树,然后使用
dot
显示编辑过的树。有关所有详细信息,请参阅
gvpr
手册

例如,给定文件
tree.dot

digraph G {
    n [level = 1]
    n -> nL
    nL [level = 2]
    nL -> nLL
    nLL [level = 3]
    nLL -> nLLL
    nLLL [level = 4]
    nLL -> nLLR
    nLLR [level = 4]
    nL -> nLR
    nLR [level = 3]
    nLR -> nLRL
    nLRL [level = 4]
    nLR -> nLRR
    nLRR [level = 4]
    n -> nR
    nR [level = 2]
    nR -> nRL
    nRL [level = 3]
    nRL -> nRLL
    nRLL [level = 4]
    nRL -> nRLR
    nRLR [level = 4]
    nR -> nRR
    nRR [level = 3]
    nRR -> nRRL
    nRRL [level = 4]
    nRR -> nRRR
    nRRR [level = 4]
}
。。。当使用
点绘制时,看起来是这样的:

digraph G {
    n [level = 1]
    n -> nL
    nL [level = 2]
    nL -> nLL
    nLL [level = 3]
    nLL -> nLLL
    nLLL [level = 4]
    nLL -> nLLR
    nLLR [level = 4]
    nL -> nLR
    nLR [level = 3]
    nLR -> nLRL
    nLRL [level = 4]
    nLR -> nLRR
    nLRR [level = 4]
    n -> nR
    nR [level = 2]
    nR -> nRL
    nRL [level = 3]
    nRL -> nRLL
    nRLL [level = 4]
    nRL -> nRLR
    nRLR [level = 4]
    nR -> nRR
    nRR [level = 3]
    nRR -> nRRL
    nRRL [level = 4]
    nRR -> nRRR
    nRRR [level = 4]
}

。。。命令
gvpr-i'N[level<4]'tree.dot | dot-Tpng-otree3.png
生成以下图像:


使用
gvpr
还有更复杂的方法,可以选择要查看的图形部分,而无需像我所做的那样用级别标记节点,但我对gvpr还不够精通,不能确切地说,如果没有比现在更多的研究,那该怎么做

很好的回答!!非常感谢!!