I have a .dot file that encodes a binary decision tree with lot of levels. In order, to visualise it, I use the command dot -Tpng sample.dot > sample.png. But the created .png is huge and hard to understand it. So I wonder if it is possible to limit the number of levels that are rendered in the output file form the command line, i.e. I don't want to modify the -dot file, I just want to modulate how the .png output is generated. I read the documentation but I couldn't find anything.
For example, if I just want the three first levels of the decision tree, is there any modifier like: dot -Tpng sample.dot > sample.png -L 3?
You can't use dot to show only part of a graph but you can use gvpr to programmatically edit the tree and then display the edited tree with dot. See the gvpr manual here for all the details.
As an example, given the file 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]
}
... which looks like this when plotted with dot:

... the command gvpr -i 'N [level < 4]' tree.dot | dot -Tpng -otree3.png produces the following image:

There are more sophisticated ways to use gvpr that might allow the part of the graph that is to be viewed to be selected without the need to label the nodes with their levels as I have done, but I'm not sufficiently expert with gvpr to say exactly how that might be done without more research than I have time for right now.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With