Falsche Skalierung bei psBoxplot und psaxes

Tabellen und Grafiken erstellen und anordnen


christoph88
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 75
Registriert: Di 21. Feb 2012, 13:43

Falsche Skalierung bei psBoxplot und psaxes

Beitrag von christoph88 »

Hallo,

ich möchte mit PSTricks einen Boxplot zeichnen. Ich habe länger nicht mehr mit PSTricks gearbeitet und mir aus dem Internet den folgenden Code zusammengebaut:
\documentclass[onepage]{scrartcl}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{pst-all}
\usepackage{pst-pdf}

\begin{document}

\begin{pspicture}(-1,-1)(5,14)
\psset{yunit=0.5,fillstyle=solid}
\savedata{\data}[ 1 1 3 5 8 ]
\rput(1,0){\psBoxplot[fillcolor=red!18]{\data}}
\psaxes[dy=1,Dy=1](0,0)(2,10)
\end{pspicture}

\end{document}
Dieser funktioniert so auch wunderbar. Wenn ich jedoch die Achsenskalierung ändere auf, z.B.
\psaxes[dy=2,Dy=1](0,0)(2,10)
bleibt das Boxplot in genau derselben Größe wie vorher, jedoch passen die Werte nicht mehr zur Achse. Wie kann ich die Skalierung der Achse und des Boxplots miteinander verbinden?`

Ich hoffe, ihr könnt mir helfen.

Viele Grüße
Christoph
Zuletzt geändert von christoph88 am Do 11. Jun 2015, 13:48, insgesamt 1-mal geändert.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Re: Falsche Skalierung bei psBoxplot und psaxes

Beitrag von esdd »

christoph88 hat geschrieben: Wenn ich jedoch die Achsenskalierung ändere auf, z.B.
\psaxes[dy=1,Dy=1](0,0)(2,10)
Das ist doch das gleiche, wie in dem Beispiel oder übersehe ich da etwas?

Mit PSTricks habe ich auch schon ewig nichts mehr gemacht, aber wenn ich den Code richtig verstehe, werden der Plot und die Achsen vollkommen unabhängig gezeichnet und platziert. Wenn Du bei beiden gleichzeitig die Skalierung ändern willst, musst Du einen anderen Wert für yunit in \psset{yunit=0.5,fillstyle=solid} vorgeben.

Gruß
Elke

christoph88
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 75
Registriert: Di 21. Feb 2012, 13:43

Beitrag von christoph88 »

Danke für die Antwort. Ich habe mich natürlich vertan, Entschuldigung. Der Code ist jetzt geändert, aber die Werte sind ja eigentlich beliebig.

Vielleicht habe ich mich falsch ausgedrückt. Ich möchte die y-Achse so skalieren, dass sich die Beschriftungen anpassen. Wenn ich also z.B. 100 als Höchstwert habe, soll nicht jede einzelne Einheit abgetragen werden. Und dann stimmen die Achsen nicht mehr mit den Boxen überein.

Es gibt demnach keine Möglichkeit, die Boxplots mit den Achsen zu verbinden?

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Wenn beides gleich skaliert sein sollen, aber Du nur jeden sounsovielten Tick an der Achse eingetragen haben möchtest, dann müssen dy und Dy den gleichen Wert haben. dy gibt die Anzahl der y-Einheiten zwischen zwei aufeinanderfolgenden Ticks an und Dy die Differenz zwischen den daran stehenden Zahlen.

Beispiele:
\documentclass[onepage]{scrartcl} 
\usepackage{pst-all} 
\usepackage{auto-pst-pdf} 
\begin{document} 
\begin{pspicture}(-1,-1)(5,14) 
\psset{yunit=0.5,fillstyle=solid} 
\savedata{\data}[ 1 1 3 5 8 ] 
\rput(1,0){\psBoxplot[fillcolor=red!18]{\data}} 
\psaxes[dy=1,Dy=1](0,0)(2,10) 
\end{pspicture} 
\quad
\begin{pspicture}(-1,-1)(5,14) 
\psset{yunit=0.5,fillstyle=solid} 
\savedata{\data}[ 1 1 3 5 8 ] 
\rput(1,0){\psBoxplot[fillcolor=red!18]{\data}} 
\psaxes[dy=2,Dy=2](0,0)(2,10) 
\end{pspicture}
\quad
\begin{pspicture}(-1,-1)(5,14) 
\psset{yunit=0.5,fillstyle=solid} 
\savedata{\data}[ 1 1 3 5 8 ] 
\rput(1,0){\psBoxplot[fillcolor=red!18]{\data}} 
\psaxes[dy=10,Dy=10](0,0)(2,10) 
\end{pspicture}
\par
\bigskip
\begin{pspicture}(-1,-1)(5,14) 
\psset{yunit=0.25,fillstyle=solid} 
\savedata{\data}[ 1 1 3 5 8 ] 
\rput(1,0){\psBoxplot[fillcolor=red!18]{\data}} 
\psaxes[dy=1,Dy=1](0,0)(2,10) 
\end{pspicture} 
\quad
\begin{pspicture}(-1,-1)(5,14) 
\psset{yunit=0.25,fillstyle=solid} 
\savedata{\data}[ 1 1 3 5 8 ] 
\rput(1,0){\psBoxplot[fillcolor=red!18]{\data}} 
\psaxes[dy=2,Dy=2](0,0)(2,10) 
\end{pspicture}
\quad
\begin{pspicture}(-1,-1)(5,14) 
\psset{yunit=0.25,fillstyle=solid} 
\savedata{\data}[ 1 1 3 5 8 ] 
\rput(1,0){\psBoxplot[fillcolor=red!18]{\data}} 
\psaxes[dy=10,Dy=10](0,0)(2,10) 
\end{pspicture}
\end{document}
Gruß
Elke

Bild
Dateianhänge
gl_pstricks_boxplot.png
gl_pstricks_boxplot.png (13.18 KiB) 1411 mal betrachtet

christoph88
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 75
Registriert: Di 21. Feb 2012, 13:43

Beitrag von christoph88 »

Hallo Elke,

vielen Dank für die schnelle Hilfe, jetzt habe ich es verstanden. :)

Viele Grüße
Christoph[/code]

Antworten