PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kuchendiagramm erstellen



Bilbo
20-05-2009, 10:43
Hallo,

ich möchte gerne Daten aus ASCII-Files einlesen (Spalte soll angegeben werden) und diese nach vorgegebenen Intervallen prozentual in einem 2D-Kuchendiagramm darstellen. Dazu sollen die Kuchenstücke dementsprechend mit den Prozentzahlen beschriftet werden, sowie eine Legende mit den Intervallen erzeugt werden. Ich schätze mal dafür verwendet man am Besten tikz oder pstricks. Wie mache ich das?

Gruß,
Bilbo

voss
20-05-2009, 12:06
ich möchte gerne Daten aus ASCII-Files einlesen (Spalte soll angegeben werden) und diese nach vorgegebenen Intervallen prozentual in einem 2D-Kuchendiagramm darstellen. Dazu sollen die Kuchenstücke dementsprechend mit den Prozentzahlen beschriftet werden, sowie eine Legende mit den Intervallen erzeugt werden. Ich schätze mal dafür verwendet man am Besten tikz oder pstricks. Wie mache ich das?


titelseite:
http://www.ctan.org/tex-archive/graphics/pstricks/contrib/pstricks-add/pstricks-add-doc.pdf

Herbert

Bilbo
20-05-2009, 12:19
Danke, Herbert. Das auf der Titelseite ist genau das was ich suche. Mal schauen ob ich das hinbekomme.

Bilbo
20-05-2009, 13:28
Wie lese ich die Daten ein? Ich habe leider noch nie mit PSTricks gearbeitet und muss mir erst einmal einen Überblick schaffen.

voss
20-05-2009, 15:38
Wie lese ich die Daten ein? Ich habe leider noch nie mit PSTricks gearbeitet und muss mir erst einmal einen Überblick schaffen.

auf Seite ?? ist doch der Quelltext angegeben.

Herbert

Bilbo
20-05-2009, 15:42
Hallo Herbert,

ich meinte wie ich Daten importiere (z. B. *.csv). Das geht doch sicher, oder?

voss
20-05-2009, 16:05
ich meinte wie ich Daten importiere (z. B. *.csv). Das geht doch sicher, oder?

Das lohnt sich doch bei einem Tortendiagramm überhaupt nicht. Mehr
als zwanzig Werte hast du doch sowieso nicht. Dann kopiert man einfach
die Daten und fertig. Ansonsten kann man sie natürlich mit \dataread
einlesen. Was aber erst Sinn macht, wenn man _erheblich_ mehr als
20 Werte hat ...

Herbert

Bilbo
20-05-2009, 17:45
Da hast du sicherlich recht, Herbert.

Bei mir lässt sich übrigens das Beispiel nicht kompilieren. Ich habe gelesen, dass man nicht direkt nach PDF kompilieren kann. Allerdings funktioniert auch LaTeX => PS bei mir nicht.

Welche Pakete brauche ich eigentlich alle, damit es läuft? Ich habe es jetzt so:



\documentclass{scrreprt}

\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{pstricks}
\usepackage{pst-node}
\usepackage{pst-plot}
\usepackage{pstricks-add}

\begin{document}

\psset{unit=1.5}
\begin{pspicture}(-3,-3)(3,3)
\psChart[userColor={red!30,green!30,blue!40,gray,cyan!50,
magenta!60,cyan},chartSep=30pt,shadow=true,shadows ize=5pt
]{34.5,17.2,20.7,15.5,5.2,6.9}{6}{2}
\psset{nodesepA=5pt,nodesepB=-10pt}
\ncline{psChartO1}{psChart1}\nput{0}{psChartO1}{10 00 (34.5\%)}
\ncline{psChartO2}{psChart2}\nput{150}{psChartO2}{ 500 (17.2\%)}
\ncline{psChartO3}{psChart3}\nput{-90}{psChartO3}{600 (20.7\%)}
\ncline{psChartO4}{psChart4}\nput{0}{psChartO4}{45 0 (15.5\%)}
\ncline{psChartO5}{psChart5}\nput{0}{psChartO5}{15 0 (5.2\%)}
\ncline{psChartO6}{psChart6}\nput{0}{psChartO6}{20 0 (6.9\%)}
\bfseries%
\rput(psChartI1){Taxes}\rput(psChartI2){Rent}\rput (psChartI3){Bills}
\rput(psChartI4){

\end{document}

voss
20-05-2009, 18:38
Bei mir lässt sich übrigens das Beispiel nicht kompilieren. Ich habe gelesen, dass man nicht direkt nach PDF kompilieren kann. Allerdings funktioniert auch LaTeX => PS bei mir nicht.

Welche Pakete brauche ich eigentlich alle, damit es läuft? Ich habe es jetzt so:



\rput(psChartI1){Taxes}\rput(psChartI2){Rent}\rput (psChartI3){Bills}
\rput(psChartI4){

\end{document}


da fehlt ja auch einiges ...

Es gibt mehrere Varianten, um pdflatex zu nutzen, so man es denn überhaupt
braucht. Wenn man es nicht braucht, dann Profil LaTeX=>PS=>PDF

Ansonsten bekommst du hier einige Profile für Windows und TeXnicCneter,
die Thorsten erstellt hat.
http://www.ctan.org/tex-archive/graphics/pstricks/pst-support/

Herbert

Bilbo
20-05-2009, 18:48
Ja, mit dem Profil scheint es zu gehen. Allerdings erhalte ich folgendes Ergebnis (siehe PDF).



\documentclass{scrreprt}

\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{pstricks}
\usepackage{pst-node}
\usepackage{pst-pdf}
\usepackage{pstricks-add}

\begin{document}

\psset{unit=1.5}
\begin{pspicture}(-3,-3)(3,3)
\psChart[userColor={red!30,green!30,blue!40,gray,cyan!50,ma genta!60,cyan},chartSep=30pt,shadow=true,shadowsiz e=5pt]{34.5,17.2,20.7,15.5,5.2,6.9}{6}{2}
\psset{nodesepA=5pt,nodesepB=-10pt}
\ncline{psChartO1}{psChart1}\nput{0}{psChartO1}{10 00 (34.5\%)}
\ncline{psChartO2}{psChart2}\nput{150}{psChartO2}{ 500 (17.2\%)}
\ncline{psChartO3}{psChart3}\nput{-90}{psChartO3}{600 (20.7\%)}
\ncline{psChartO4}{psChart4}\nput{0}{psChartO4}{45 0 (15.5\%)}
\ncline{psChartO5}{psChart5}\nput{0}{psChartO5}{15 0 (5.2\%)}
\ncline{psChartO6}{psChart6}\nput{0}{psChartO6}{20 0 (6.9\%)}
\bfseries%
\rput(psChartI1){Taxes}\rput(psChartI2){Rent}\rput (psChartI3){Bills}
\rput(psChartI4){Car}\rput(psChartI5){Gas}\rput(ps ChartI6){Food}
\end{pspicture}

\end{document}

mechanicus
20-05-2009, 18:51
Hallo,

hast du ghostscript installiert?

Gruß
Marco

Bilbo
20-05-2009, 18:54
Hallo,

ja. Deinstallieren?

Gruß,
Bilbo

mechanicus
20-05-2009, 18:59
Hallo,

ja. Deinstallieren?

Gruß,
Bilbo
Nein, das brauchst du.

Gruß
Marco

Bilbo
20-05-2009, 19:06
Ich habe mal die neueste Version 8.64 installiert. Problem bleibt.

voss
20-05-2009, 19:11
Ja, mit dem Profil scheint es zu gehen. Allerdings erhalte ich folgendes Ergebnis (siehe PDF).



das sieht eher si aus, als betrachtest du die DVI-Ausgabe ...
Aber trotzdenm, setz mal \listfiles
als erste Zeile in dein Dokument und poste die Dateiliste am Ende des Logfiles

Herbert

Bilbo
20-05-2009, 19:15
das sieht eher si aus, als betrachtest du die DVI-Ausgabe ...

scheint mir auch so...



Here is how much of TeX's memory you used:
5028 strings out of 95305
67131 string characters out of 1183614
218040 words of memory out of 1500000
8216 multiletter control sequences out of 110000
5492 words of font info for 17 fonts, out of 3000000 for 5000
14 hyphenation exceptions out of 8191
36i,3n,73p,300b,421s stack positions out of 5000i,500n,10000p,200000b,50000s

Output written on test.dvi (1 page, 19028 bytes).

voss
20-05-2009, 19:22
scheint mir auch so...



Output written on test.dvi (1 page, 19028 bytes).


du musst _mindestens_ das Ausgabeprofil LaTeX=>PS wählen und dann
natürlich auch die PS-Ausgabe betrachten, wozu man gsview installiert haben sollte.

Herbert

Bilbo
20-05-2009, 19:32
du musst _mindestens_ das Ausgabeprofil LaTeX=>PS wählen und dann
natürlich auch die PS-Ausgabe betrachten, wozu man gsview installiert haben sollte.

Herbert

Der GS Viewer lässt sich leider nicht aus dem TeXnicCenter heraus starten, obwohl ich den Pfad dazu im Ausgabeprofil angegeben habe.

Im Verzeichnis erhalte ich aber eine Datei test-pics.ps. Öffne ich diese mit GS so wird mir die Grafik korrekt angezeigt.

Allerdings will ich das Ganze korrekt im Dokument aus dem TeXnicCenter heraus betrachten. Keine Ahnung warum es nicht funktioniert :confused:

voss
20-05-2009, 19:54
Der GS Viewer lässt sich leider nicht aus dem TeXnicCenter heraus starten, obwohl ich den Pfad dazu im Ausgabeprofil angegeben habe.

Im Verzeichnis erhalte ich aber eine Datei test-pics.ps. Öffne ich diese mit GS so wird mir die Grafik korrekt angezeigt.

Allerdings will ich das Ganze korrekt im Dokument aus dem TeXnicCenter heraus betrachten. Keine Ahnung warum es nicht funktioniert :confused:

das ist eigentlich der Standard ...
ich hänge mal meine Profile vom Schlepptopp ran (Windows Vista mit MiKTeX2.7
Die kannst du importieren

Herbert

voss
20-05-2009, 20:00
das ist eigentlich der Standard ...
ich hänge mal meine Profile vom Schlepptopp ran (Windows Vista mit MiKTeX2.7
Die kannst du importieren


vergiss es!!
Ich habe ja kein MikTeX installiert, sondern texlive 2008

Herbert

Bilbo
20-05-2009, 20:04
das ist eigentlich der Standard ...
ich hänge mal meine Profile vom Schlepptopp ran (Windows Vista mit MiKTeX2.7
Die kannst du importieren

Herbert

Wenn ich LaTeX => PS auswähle, dann erscheint das Diagramm im GS Viewer. Mit LaTeX => PS => PDF erhalte ich aber dasselbe Ergebnis wie oben. Irgendwie klappt die Umwandlung zum PDF wohl nicht korrekt.

voss
20-05-2009, 20:11
Wenn ich LaTeX => PS auswähle, dann erscheint das Diagramm im GS Viewer. Mit LaTeX => PS => PDF erhalte ich aber dasselbe Ergebnis wie oben. Irgendwie klappt die Umwandlung zum PDF wohl nicht korrekt.

unter nachbearbeitung muss bei dem Profil ps2pdf eingetragen sein

Hast du ps2pdf installiert? ist eigentlich bei MiKTeX dabei

Herbert

Bilbo
20-05-2009, 20:51
unter nachbearbeitung muss bei dem Profil ps2pdf eingetragen sein

Hast du ps2pdf installiert? ist eigentlich bei MiKTeX dabei

Herbert

Ja, die ps2pdf.exe ist vorhanden.

Also, ich habe das Profil LaTeX => PS => PDF von Thorsten importiert. Dann habe ich unter Nachbearbeitung ps2pdf hinzugefügt ebenso wie den Pfad zur ps2pdf.exe eingestellt. Als Viewer habe ich Acrobat (oder muss es hier GS sein?).

voss
20-05-2009, 20:54
Ja, die ps2pdf.exe ist vorhanden.

Also, ich habe das Profil LaTeX => PS => PDF von Thorsten importiert. Dann habe ich unter Nachbearbeitung ps2pdf hinzugefügt ebenso wie den Pfad zur ps2pdf.exe eingestellt. Als Viewer habe ich Acrobat (oder muss es hier GS sein?).

acrobat nervt, weil du den jedesmal wieder schließen musst, bevor du
LaTeX wieder laufen lässt, denn der sperrt die PDF-Datei. Fürs Arbeiten
ist gsview effektiver, wenn auch hier die Links nicht so funktionieren,
wie unter adobe. Aber das macht in der Entwicklungsphase nicht so viel aus.
gsview überwacht die Datei und aktualisiert dann automatisch, wenn du mit
der Maus in das Fenster klickst ...

so, jetzt gehe ich Fußball gucken ...:)

Herbert

Bilbo
20-05-2009, 20:55
acrobat nervt, weil du den jedesmal wieder schließen musst, bevor du
LaTeX wieder laufen lässt, denn der sperrt die PDF-Datei. Fürs Arbeiten
ist gsview effektiver, wenn auch hier die Links nicht so funktionieren,
wie unter adobe. Aber das macht in der Entwicklungsphase nicht so viel aus.
gsview überwacht die Datei und aktualisiert dann automatisch, wenn du mit
der Maus in das Fenster klickst ...

Ich schaue mal was ich noch hinbekomme, nach dem Fußball :D

Bilbo
20-05-2009, 21:54
Wenn ich LaTeX => PS als Profil verwende, dann wird das Dokument in der PS Datei richtig angezeigt. Verwende ich LaTeX => PS => PDF, so werden die Labels und die Seitenzahlen im PDF nicht angezeigt.

PS: Wie gibst du eigentlich deine Bücher in Druck. Als PS oder als PDF? Noch scheint PS bei den Druckereien sehr verbreitet zu sein.

voss
20-05-2009, 22:35
Wenn ich LaTeX => PS als Profil verwende, dann wird das Dokument in der PS Datei richtig angezeigt. Verwende ich LaTeX => PS => PDF, so werden die Labels und die Seitenzahlen im PDF nicht angezeigt.


merkwürdig ...
machmal:

\psframebox{%
\psset{unit=1.5}
\begin{pspicture}(-4.2,-3)(5.2,3)
.....
\end{pspicture}}% <- zwei Klammern!


dann musst den Rahmen sehen. Wenn es nicht geht, dann schick mir mal
die dvi,ps und pdf Datei -> Herbert.Voss@FU-Berlin.de


PS: Wie gibst du eigentlich deine Bücher in Druck. Als PS oder als PDF? Noch scheint PS bei den Druckereien sehr verbreitet zu sein.

Den Druckereien ist das Jacke wie Hose, obwohl ich immer PDF's hingebe.

Herbert

Bilbo
21-05-2009, 00:39
Ja, der Rahmen ist da.

mechanicus
21-05-2009, 01:05
Ja, der Rahmen ist da.
Hallo,

hast du mal probiert, den Kompilierungsweg über die Konsole zu gehen? Wenn das klappt, dann weißt du, es liegt an irgend welchen Einstellungen im TC.

Gruß
Marco

Bilbo
21-05-2009, 01:26
Hast den Befehl parat? *G*

mechanicus
21-05-2009, 01:43
Hast den Befehl parat? *G*

Hi,

latex foo.tex
dvips foo.dvi
ps2pdf foo.ps

Gruß
Marco

voss
21-05-2009, 07:04
Hi,

latex foo.tex
dvips foo.dvi
ps2pdf foo.ps


besser:


ps2pdf -dAutoRotatePages=/None foo.ps

oder falls Windows:

ps2pdf -dAutoRotatePages#/None foo.ps


Herbert

Bilbo
21-05-2009, 11:32
oder falls Windows:

ps2pdf -dAutoRotatePages#/None foo.ps


Wenn ich das ausführe erhalte ich eine weiße Seite und es wird kein PDF erzeugt.

Vielleicht müssen im Ausgabeprofil für ps2pdf noch Argumente übergeben werden? Neben ps2pdf unter "Nachbearbeitung" steht bei mir übrigens noch "DviPs (PDF)" und "Ghostscript (ps2pdf)" in der Liste.

Mir fällt gerade auf, dass bei der Umwandlung zum PDF alles funktioniert bis auf Buchstaben und Zahlen. Wie schon bereits erwähnt fehlt die Beschriftung und die Seitenzahl. Die grafischen Elemente sind alle vorhanden. Könnte ein wichtiger Hinweis auf das Problem sein.

Bilbo
21-05-2009, 14:19
Was ich nicht verstehe ist woher die Datei test-pics.ps kommt. Diese befindet sich nämlich auch in dem Verzeichnis und dort erscheint das Diagramm richtig. Allerdings ist die richtige Datei test.ps, denn so heißt ja auch das TeX-File.

mechanicus
21-05-2009, 14:21
Was ich nicht verstehe ist woher die Datei test-pics.ps kommt. Diese befindet sich nämlich auch in dem Verzeichnis und dort erscheint das Diagramm richtig. Allerdings ist die richtige Datei test.ps, denn so heißt ja auch das TeX-File.

Hallo,

du lädst ja auch noch pst-pdf, die solltest du vielleicht mal rausnehmen.

Gruß
Marco

Bilbo
21-05-2009, 14:45
Ich habe den Fehler soeben gefunden, als ich spaßeshalber mal
\usepackage[T1]{fontenc} rausgenommen habe. Nun geht es.

Der Hinweis mit dem Text war also richtig.

Aber wie gebe ich jetzt fontenc an, damit es funktioniert?



\documentclass{scrreprt}

\usepackage{pstricks}
\usepackage{pst-plot}
\usepackage{pst-node}
\usepackage{pstricks-add}

\begin{document}

\psset{unit=1.5}
\begin{pspicture}(-4.2,-3)(5.2,3)
\psChart[userColor={red!30,green!30,blue!40,gray,cyan!50,ma genta!60,cyan},chartSep=30pt,shadow=true,shadowsiz e=5pt]{34.5,17.2,20.7,15.5,5.2,6.9}{6}{2}
\psset{nodesepA=5pt,nodesepB=-10pt}
\ncline{psChartO1}{psChart1}\nput{0}{psChartO1}{10 00 (34.5\%)}
\ncline{psChartO2}{psChart2}\nput{150}{psChartO2}{ 500 (17.2\%)}
\ncline{psChartO3}{psChart3}\nput{-90}{psChartO3}{600 (20.7\%)}
\ncline{psChartO4}{psChart4}\nput{0}{psChartO4}{45 0 (15.5\%)}
\ncline{psChartO5}{psChart5}\nput{0}{psChartO5}{15 0 (5.2\%)}
\ncline{psChartO6}{psChart6}\nput{0}{psChartO6}{20 0 (6.9\%)}
\bfseries%
\rput(psChartI1){Taxes}\rput(psChartI2){Rent}\rput (psChartI3){Bills}
\rput(psChartI4){Car}\rput(psChartI5){Gas}\rput(ps ChartI6){Food}
\end{pspicture}

\end{document}

voss
21-05-2009, 19:01
Ich habe den Fehler soeben gefunden, als ich spaßeshalber mal
\usepackage[T1]{fontenc} rausgenommen habe. Nun geht es.

Der Hinweis mit dem Text war also richtig.



dann probiere

\usepackage[T1]{fontenc}
\usepackage{lmodern}

Herbert

Bilbo
21-05-2009, 21:36
Bingo :) Dabei habe ich die Schriftart immer in meinen Dokumenten angegeben. Ich hatte mir nichts dabei gedacht dies hier wegzulassen, da ja ansonsten CM benutzt wird.

Danke Herbert und allen anderen.

mechanicus
22-05-2009, 14:14
dann probiere

\usepackage[T1]{fontenc}
\usepackage{lmodern}

Herbert
Hallo Herbert,

ist das ein Windows-Problem. Bei dir und bei mir lief das Beispiel ja ohne Probleme?

Gruß
Marco

voss
22-05-2009, 14:21
ist das ein Windows-Problem. Bei dir und bei mir lief das Beispiel ja ohne Probleme?


keine Ahnung, benutze Windows nur, um bei anderen Fehler zu finden ...
Aber mehr auch nicht.

Herbert

mechanicus
22-05-2009, 18:35
keine Ahnung, benutze Windows nur, um bei anderen Fehler zu finden ...
:D:D Das kenne ich :D:D

Gruß
Marco