Seite 1 von 1

Falsche Skalierung bei psBoxplot und psaxes

Verfasst: Mi 10. Jun 2015, 15:06
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

Re: Falsche Skalierung bei psBoxplot und psaxes

Verfasst: Do 11. Jun 2015, 10:31
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

Verfasst: Do 11. Jun 2015, 13:53
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?

Verfasst: Do 11. Jun 2015, 14:20
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

Verfasst: Fr 12. Jun 2015, 08:00
von christoph88
Hallo Elke,

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

Viele Grüße
Christoph[/code]