WikiSchool:Graphviz
Aus WikiSchool
|
Graphviz ist ein plattformübergreifendes freies Programm welches von AT&T und den Bell-Labs entwickelt wurde.
Inhaltsverzeichnis |
[bearbeiten] Grundprinzip
Mit GraphViz lassen sich sehr schnell Struktur-Grafiken und Mindmaps erstellen. Verzweigungen lassen sich mit -> erstellen. GraphViz erstellt dann selbstständig eine Grafik daraus:
|
|
<graphviz>
digraph G {s
Hallo -> Welt;
Hallo -> Benutzer;
}
</graphviz>
|
[bearbeiten] Links
um einen Link im Bild zu erstellen geht ihr folgendermaßen vor: entweder
node [URL="http://www.wikischool.de/wiki/\N"];
nach 'digraph G {' einfügen oder falls der Link abweicht könnt ihr ihn auch manuell setzen mit
Unterpunkt [URL="Artikelname"];
Die Links müssen aber einzeln gesetzt werden. Ein nachträglich veränderter Link überschreibt einen node Link ein Punkt1 -> Punkt2 [URL="LINK"] würde einen Link auf dem Pfeil erstellen.
|
|
<graphviz>digraph G {
node [URL="http://www.wikischool.de/wiki/\N"]
Punkt1 [URL="Abweichender Punkt"];
Punkt2 [URL="Noch so einer"];
Punkt1 -> Punkt2;
Punkt2 -> Punkt3;
Punkt2 -> Punkt4;
}
</graphviz>
|
[bearbeiten] Ausrichtung
Die Ausrichtung einer Grafik lässt sich mit rankdir=LR bestimmen. Das LR lässt sich durch 4 Variablen ersetzen:
|
|
|
|
|
| Von oben nach unten | Von unten nach oben | Von links nach rechts | Von rechts nach links |
<graphviz>
digraph G {
rankdir=TB;
A -> B;
}
</graphviz>
|
<graphviz>
digraph G {
rankdir=BT;
A -> B;
}
</graphviz>
|
<graphviz>
digraph G {
rankdir=LR;
A -> B;
}
</graphviz>
|
<graphviz>
digraph G {
rankdir=RL
A -> B;
}
</graphviz>
|
[bearbeiten] Form und Farbe
Es lassen sich auch Form und Farbe der Knotenpunkte bestimmen, hier die wichtigsten:
Weitere Formen finden sich hier. Die Farben hier
|
|
<graphviz>
digraph G {
bgcolor="transparent";
rankdir=LR;
Dreieck [shape=triangle, style=filled, color=blue, fontcolor=white];
Ei [shape=egg, style=filled, color=beige];
Kasten [shape=box, style=filled, color=yellow, fillcolor=green];
Haus [shape=house style=filled, color=gray, fillcolor=red];
Nix [shape=none, fontcolor=red];
Dreieck -> Ei -> Kasten -> Haus -> Nix [color=blue style=bold];
}
</graphviz>
|
[bearbeiten] Pfeile
Pfeile lassen sich global mit edge beeinflussen. Die Pfeilspitze wird dabei mit arrowhead= definiert.
|
|
<graphviz>
digraph G {
node [style=filled, color=black, fillcolor=white shape=triangle];
edge [style=bold color=blue];
bgcolor="transparent";
rankdir=LR;
size ="18,16";
A -> B [arrowhead=none];
B -> C [arrowhead=crow];
C -> D [arrowhead=vee];
D -> A [arrowhead=odot];
}
</graphviz>
|
|
|
<graphviz>
digraph G {
node [style=filled, color=black, fillcolor=white shape=box];
bgcolor="transparent";
edge [arrowhead=none];
A[shape=none label="E1.0" fillcolor=transparent];
B[shape=none label="E1.1" fillcolor=transparent];
C[shape=none label="E1.2" fillcolor=transparent];
D[shape=none label="E1.3" fillcolor=transparent];
X[label=">=1"];
rankdir=LR
size ="18,16";
A -> "&";
B -> "&";
C -> "& ";
D -> "& ";
"&" -> X;
"& " -> X;
X -> "A1.0";
"A1.0" [shape=none fillcolor=transparent];
}
</graphviz>
|
[bearbeiten] Kombinierte Knoten
Hier ist es nötig, bei den sogenannten Structs shape=record zu verwenden.
|
|
<graphviz>
digraph G {
node [style=filled, color=black, fillcolor=ghostwhite shape=record];
bgcolor="transparent";
rankdir=BT;
struct1 [label="<f0> E|<f1> 0. |<f2> 0", shape=record];
Adresstyp -> struct1:f0;
Byteadresse -> struct1:f1[label="0 bis ..."];
Bitadresse -> struct1:f2[label="0 bis 7"];
}
</graphviz>
|
|
|
<graphviz>
digraph G {
bgcolor="transparent"
node [style=filled, color=black, fillcolor=white shape=record];
struct1 [label="<f0> left|<f1> mid\ dle|<f2> right"];
struct2 [label="<f0> one|<f1> two"];
struct3 [label="hello\nworld |{ b |{c|<here> d|e}| f}| g | h"];
struct1:f1 -> struct2:f0; struct1:f2 -> struct3:here;
}
</graphviz>
|
[bearbeiten] Zeilenumbruch
Zeilenumbrüche können manchmal sehr nützlich sein. In Graphviz erstellt man solche mit \n.
|
| |
<graphviz>
digraph G {
bgcolor="transparent"
node [style=filled, color=black, fillcolor=white shape=box];
"So passt \n er viel \n besser...";
}
</graphviz>
| |
<graphviz>
digraph G {
bgcolor="transparent"
node [style=filled, style=bold, color=black, fillcolor=white shape=box];
"Rauchen gefährdet die Gesundheit\nund verkürzt die Lebenserwartung";
}
</graphviz>
| |
[bearbeiten] Beispiele
Hier ein paar Beispiele zum sehen wie GraphViz funktioniert ist garnicht so schwer :)
|
|
<graphviz>
digraph G {
size ="18,16";
main [shape=box]; /* this is a comment */
main -> parse [weight=8];
parse -> execute;
main -> init [style=dotted];
main -> cleanup;
execute -> { make_string; printf}
init -> make_string;
edge [color=blue]; // die folgenden Pfeile in blau
main -> printf [style=bold,label="100 times"];
make_string [label="make a\nstring"];
node [shape=box,style=filled,color=".7 .3 1.0"];
execute -> compare;
}
</graphviz>
|
[bearbeiten] Weiteres Beispiel
<graphviz>
digraph G {
node [style=filled, color=black, fillcolor=ghostwhite];
bgcolor="transparent";
node [URL="http://www.wikischool.de/wiki/\N"];
size ="8,8";
Grundschule[shape=box, style=filled, fillcolor=lightblue];
Berufsausbildung [style=filled, fillcolor=lightblue];
Grundschule -> Realschule [weight=8] [label="4"];
Grundschule -> Hauptschule [weight=8][label="4"];
Grundschule -> Gymnasium [weight=8][label="4"];
Hauptschule -> BVJ[label="5"];
Hauptschule -> Berufsfachschule [label="5"];
Hauptschule -> Berufsausbildung [label="5"];
BVJ -> Berufsausbildung [label="1"];
Berufsfachschule -> Berufsausbildung [label="1 oder 2"];
Berufsfachschule -> Oberstufe [label="1 oder 2"];
Realschule -> Oberstufe [label="6"];
Realschule -> Berufsausbildung [label="5"];
Gymnasium -> Studium [label="3 bis 5"];
Gymnasium -> Oberstufe [label="6"];
Gymnasium -> Berufsausbildung [label="9"];
Oberstufe -> TG [label="3"];
Oberstufe -> WG [label="3"];
Oberstufe -> EG [label="3"];
TG -> Berufsausbildung [label="3"];
WG -> Berufsausbildung [label="3"];
EG -> Berufsausbildung [label="3"];
TG -> Studium [label="3 bis 5"];
WG -> Studium [label="3 bis 5"];
EG -> Studium [label="3 bis 5"];
Studium -> Berufsausbildung [label="3"];
}
</graphviz>
[bearbeiten] Erzeugt wird das eigentliche Bild mit folgenden Befehl:
png-Format:
$ dot -Tpng nichtvorhanden.dot -o nichtvorhanden.png
postscript-Format:
$ dot -Tps nichtvorhanden.dot -o nichtvorhanden.eps
svg-Format:
$ dot -Tsvg nichtvorhanden.dot -o nichtvorhanden.svg
jpeg-Format:
$ dot -Tjpeg nichtvorhanden.dot -o nichtvorhanden.jpeg
gif-Format:
$ dot -Tgif nichtvorhanden.dot -o nichtvorhanden.gif
[bearbeiten] Siehe auch
- Offizielle Homepage (engl.)
- Graphviz in der deutschen Wikipedia
WIKI
Abituraufgaben
Referate
Fächer
FORUM
News
Ankündigungen
Schule
Nach der Schule
Freizeit und Miteinander
Computer & Internet
OffTopic
CHAT
IRC
Tutorial
TOOLS
html2wiki
GAMES
WIKISCHOOL
Impressum
Links