Arrangements
Instead of toiling over a graphics layout, you can use Graphviz to concentrate on the essential content and let the software do the design.
|
Instead of toiling over a graphics layout, you can use Graphviz to concentrate on the essential content and let the software do the design.
The more elements a graph contains, the more complicated the placement of nodes. Instead of working on your project into the night, why not pass the task on to the computer – equipped with Graphviz [1] – to do the perfect job? Graphviz is based on an open format, called DOT, which uses simple text files.
Most distributions already have Graphviz in their repositories. With Ubuntu, you install the software by using the apt-get install graphviz command.
Listing 1 shows the basis for a simple diagram. The first line defines the diagram by name (G ). All components enclosed in curly brackets are related to this diagram – in this case, the connections for a tree diagram. End each line with a semicolon.
Listing 1
Simple Diagram
digraph G { DOT -> "Organizational Diagram"; DOT -> "Arrow Diagram"; DOT -> "Mind Maps"; DOT -> "Network Plans"; }
Graphviz includes a renderer that creates the diagrams. It calculates the best order the individual elements should take. The standard renderers are dot , neato , fdp , circo , and twopi . The result depends on which renderer you choose.
The software supports a number of output formats. The most common are EPS, JPG, PNG, SVG, and PDF. You can get the complete list with dot -T? . If you select svg , you can edit the result again in a drawing program.
The actual conversion is achieved with a simple command. Figure 1 shows the result of the following command:
$ dot -T png -o fig01-diagram.png fig01-diagram.dot
The description language essentially knows three objects with which you can create a diagram (Table 1). Properties that you set for these objects apply to all objects – provided you give the property a new value in each case.
Table 1
Objects
graph | A directed graph is called a digraph ; an undirected graph is designated a graph . Every graph can contain further graphs. |
node | Nodes that are connected in a certain way. You don't need to define a node in advance; it gets defined during its first use. |
edge | Link between two nodes. A directed link occurs when two nodes connect with a -> . |
By default, Graphviz uses the name of the node as its label. Node names can't have just any characters, and they especially cannot contain special characters. If you want to use space or special characters or breaks, then use label to define the label and enclose the content in quotes. Specify a break with the \n escape sequence. The code in Listing 2 shows an overview of the sequence of schools in the United States (Figure 2).
Listing 2
Educational Flow in the United States
digraph G { PK [label="Pre-school"]; P [label="Primary"]; S [label="Secondary"]; VT [label="Vocational / Technical"]; CC [label="Community College"]; UP [label="Undergraduate Programs"]; MD [label="Master's Degree"]; PS [label="Professional Schools"]; PHD [label="Doctoral Studies"]; PDS [label="Postdoctoral Studies / Research"]; PK->P; P->S; S->VT;S->CC;S->UP; CC->UP; UP->MD;UP->PS; MD->PHD; PS->PHD;PS->PDS; PHD->PDS; }
The result isn't necessarily optimal; it would have been better to flow from left to right rather than top to bottom. The rankdir attribute of the graph object sets the chart's orientation. The values for it are TB (top to bottom), LR (left to right), RL (right to left), and BT (bottom to top).
Pages: 5
Network plans, nested dependencies, or binary trees – with Graphviz, you can visualize complex relationships in a simple way.
Using LaTeX and the TikZ package, you can create high-quality vector graphics to improve your documents by making them more visually appealing.
The Natron video program intends to compete with larger, commercial programs, such as AfterEffects and Nuke. At first, the controls may appear cumbersome and confusing, but with a little guidance and practice, everything becomes clear.
© 2024 Linux New Media USA, LLC – Legal Notice