Forum: PC Hard- und Software Latex und spezielles Balkendiagramm


von John (Gast)


Lesenswert?

Hallo,

ich habe folgendes Problem und finde keine Lösung im Internet oder über 
das Manual.

Es geht um das zeichnen von pgfplots in Latex.

Ich habe eine csv Datei, in der in einer Zeile ein bis mehrere 3-Tupel 
stehen können.

In etwa so:
1
100 (A,20,23),(B,25,26)
2
200 (B,12,18)
3
300 (B,17,20),(C,22,30)

Jetzt möchte ich gerne ein horizontales Balkendiagramm daraus erzeigen.

Die gegebenen Koordinaten in einer Zeile (Im Tupel an Position 2 und 3) 
sollen nun zu einem Balken zusammengebaut werden. Der String an Position 
1 im Tupel soll auch einer Farbe zugeordnet werden.
Sagen wie A = rot, B = grün, C = gelb.
So würde nun ein Balken mit Beschriftung 100 aus einem roten Stück von X 
= 20 bis X = 23 und aus einem grünen Stück von X = 23 bis X = 26 
bestehen.

Für 200 und 300 Analog.

In ASCII in etw so:
1
                   AAAA BB
2
           BBBBBBB
3
                BBBB CCCCCCCCC
4
^
5
|
6
0,0->
Ich habe einige Sachen im Manual und auf der Demo Seite gefunden, aber 
diese haben die geben die Koordinaten als Stacked an (also keine Lücken 
sich möglich) und weiterhin ist die Anordnung bei denen nicht in Zeilen, 
sondern in Spalten.

hat eventuell jemand eine Ahnung wie ich das generieren kann?

Danke

: Verschoben durch User
von John (Gast)


Lesenswert?

Ach ja, die Reihenfolge von A,B,C ist nicht immer die gleiche, darum ist 
Stacked auch nicht wirklich die richtige Lösung

von nfet (Gast)


Lesenswert?

Male einfach Rechtecke?
Verstehe das Problem nicht so ganz.
Man kann doch mit tickz zum Beispiel einfach Rechtecke malen.

von Rene H. (Gast)


Lesenswert?

Da würde gleich gnuplot bemühen und nicht erst lange mit LaTeX 
versuchen.

von Hannes W. (7nrn3ap3)


Lesenswert?

Das nennt sich "Gantt-Chart". Male einfach "breite Linien" und setzte 
"unbounded coords = jump". Deine "CSV" musst du natürlich umformatieren:
1
\addplot[color = Acolor, line width = 10pt] coordinates { (20, 100) (23,100) };
2
\addplot[color = Bcolor, line width = 10pt] coordinates { (25, 100), (26, 100) };

Auch für gnuplot ist deine "CSV" ungeeignet.

PS: Deine Daten passen nicht zu deiner Grafik.
PPS: "CSV" und Tupel beißen sich; da passt was nicht.

: Bearbeitet durch User
von A. H. (ah8)


Lesenswert?

Ich mache so etwas mit PSTricks. Das erlaubt Dir größtmögliche 
Flexibilität und liefert sehr gute Ergebnisse. PSTricks ist eine 
Sammlung von Makros, die es erlauben, PostScript-Grafiken in TeX oder 
LaTeX einzubinden. Du kannst damit elementare Grafikelemente wie Linien, 
Kurven oder Kreise erzeugen. Alles was Du brauchst ist ein kleines 
Skript in der Sprache Deiner Wahl (Perl, Python, meinetwegen auch Basic, 
was immer Du willst), welches Deine Parameter einliest und die 
entsprechenden Grafikelemente generiert. Die fügst Du dann einfach in 
Dein LaTeX-Dokument ein. Bei Deinem Problem ist der Aufwand sehr 
überschaubar.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.