diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-plot/dtk02-2.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-plot/dtk02-2.tex | 375 |
1 files changed, 0 insertions, 375 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-plot/dtk02-2.tex b/Master/texmf-dist/doc/generic/pst-plot/dtk02-2.tex deleted file mode 100644 index 353db1f24f8..00000000000 --- a/Master/texmf-dist/doc/generic/pst-plot/dtk02-2.tex +++ /dev/null @@ -1,375 +0,0 @@ -\documentclass[ngerman]{dtk} -\usepackage[T1]{fontenc} -\usepackage[latin1]{inputenc} -%\usepackage{pslatex} -\usepackage{tabularx} -\usepackage{url} -\usepackage{graphicx} -\usepackage{cite} -%\makeatletter -%\newcommand{\La}% -% {L\kern-.36em -% {\setbox0\hbox{T}% -% \vbox to\ht0{\hbox{$\m@th$% -% \csname S@\f@size\endcsname -% \fontsize\sf@size\z@ -% \math@fontsfalse\selectfont -% A}% -% \vss}% -% }} -%\makeatother -%\def\AllTeX{(\La\kern-.075em)\kern-.075em\TeX} - -\begin{document} -\NeedPackage{tabularx} -\NeedPackage{url} -\NeedPackage{graphicx} -\NeedPackage{cite} - - -\title{Die Plot-Funktionen von \texttt{pst-plot}} -\author{Laura E. Jackson\and Herbert Voß} -\maketitle -\begin{abstract} - Im letzten Heft wurden die mathematischen Funktionen von \PS~im - Zusammenhang mit dem \LaTeX-Paket \texttt{pst-plot} zum Zeichnen von - Funktionen beschrieben und durch Beispiele erläutert. In diesem Teil - werden die bislang nur erwähnten Plot-Funktionen für externe Daten - behandelt. -\end{abstract} - -\section{Einführung} -Die graphische Darstellung externer Datensätze gehört zu den -Standardproblemen von technisch-wissenschaftlichen Veröffentlichungen. -Sehr häufig werden diese mit \texttt{gnuplot} eingelesen, dargestellt, -mit Koordinatenachsen und weiteren Hinweisen versehen und dann -abschließend nach \LaTeX\ exportiert. Im Folgenden werden Wege -aufgezeigt, die den Umweg über \texttt{gnuplot} oder entsprechende -Programme überflüssig machen können. - -Die Geschichte und die Bedeutung von \PS\ wurden hinreichend im -letzten Heft \cite{dtk02.1:voss:mathematischen} behandelt, ebenso wie -das benötigte Paket \texttt{pst-plot} -(\url{CTAN:/graphics/pstricks/latex/pst-plot.sty}), welches Teil des -Pakets \texttt{pstricks} ist und mit der Anweisung -\texttt{\textbackslash{}usepackage\{pst-plot\}} einzubinden ist. Daher -braucht an dieser Stelle nicht weiter auf diese spezifischen Dinge -eingegangen zu werden. - -Das Paket \texttt{pst-plot} stellt die folgenden drei Plot-Funktionen -für die Darstellung externer Daten mit folgender Syntax zur Verfügung: - -\begin{verbatim} -\fileplot*[<Parameter>]{<Dateiname>} -\dataplot*[<Parameter>]{<Befehle>} -\listplot*[<Parameter>]{<Liste>} -\end{verbatim} - -Die Sternversionen stehen hierbei wie für alle Objekte von -\texttt{PSTricks} jeweils für die inverse Darstellung der Daten, -d.\,h. für eine standardmäßige Schwarz-Weiß-Grafik erhält man mit der -Sternversion das Negativ. Im Folgenden wird nur die normale -Darstellung berücksichtigt, da dies keine Einschränkung der -Allgemeinheit bedeutet. - -Im Zusammenhang mit den Plot-Funktionen sind noch folgende Befehle -interessant, die ebenfalls durch das Paket \texttt{pst-plot} definiert -sind: - -\begin{verbatim} -\readdata{<Objectname>}{<Dateiname>} -\savedata{<Objectname>}{<Dateiname>} -\end{verbatim} - -Weitere Informationen kann man der Dokumentation zu \texttt{pstricks} -entneh\-men\cite{pstricks} oder der umfangreichen Beschreibung in -\cite{companion,girou:01:,girou:02:}, die jedoch alle nicht die -wesentlichen Unterschiede zwischen den drei Plot-Funktionen -herausarbeiten. Für alle Beispiele wird jeweils die komplette -\texttt{pspicture}-Umgebung angegeben, so dass eine direkte Übernahme -der Beispiele möglich ist. Eine Dokumentation des -\texttt{multido}-Befehls findet man unter \url{CTAN: - /macros/latex209/contrib/multido/multido.doc}, alle anderen hier -nicht weiter erwähnten in der Dokumenation zu -\texttt{pstricks} \cite{pstricks}. - -\section{Plot-Stile} - -Insbesondere der Plot-Stil ist als Parameter von Bedeutung und kann -folgende Werte annehmen: - -\noindent\begin{tabularx}{1.0\linewidth}{rX}\toprule - \emph{Stilparameter} & \emph{Bedeutung}\\\midrule -% \hline - \texttt{plotstyle=dots} & Wertepaare als einzelne Punkte setzen\\ - \texttt{=line} & Wertepaare durch eine Gerade verbinden\\ - \texttt{=polygon} & Wie \texttt{line}, nur mit geschlossenem - Linienzug\\ - \texttt{=curve} & Interpolation zwischen den Wertepaaren, - wobei die Kurve über den Anfangs-/Endpunkt - hinausgehen kann\\ - \texttt{=ecurve} & Wie \texttt{curve}, nur beginnt/endet die - Kurve bei dem Anfangs-/Endwertepaar.\\ - \texttt{=ccurve} & Wie \texttt{curve}, nur mit geschlossenem - Kurvenzug\\\bottomrule -\end{tabularx} - -Bei einer fehlenden Angabe wird grundsätzlich die \texttt{line}-Option -gewählt. - - -\section{Beispiele für \texttt{\textbackslash{}fileplot}} - -\texttt{fileplot} ist immer dann angebracht, wenn in einer Datei -gespeicherte Zahlenpaare $(x|y)$ geplottet werden sollen. Diese sind -als reine Zahlenwerte paarweise in einer oder mehreren Zeilen -anzuordnen und dürfen nur auf vier verschiedene Arten getrennt sein -(Leerschritt, Komma oder runde bzw. geschweifte Klammern): - -\verb#x y x,y (x,y) {x,y}# - -Der als Trenner häufig benutzte Tabulator (\texttt{\textbackslash{}t} -bzw. \texttt{\textbackslash{}009}) ist demnach nicht zulässig, kann -aber leicht durch Texteditoren oder für Unix mit - -\texttt{tr '\textbackslash{}t' ' ' < inFile > outFile} - -ersetzt werden. Diese Datendateien dürfen bis auf das \TeX-übliche -Kommentarzeichen "`\%"' keine anderen Zeichen außer den -Zahlenwerten selbst enthalten. - -Das erste Beispiel zeigt ein UV/VIS-Absorptionsspektrum ($A=\lg -\frac{I_{0}}{I}$ als Funktion der Wellenlänge), während das zweite -eine Populationsentwicklung in Abhängigkeit des Brutfaktors darstellt -(Feigenbaum-Diagramm). Aus dem jeweils angegebenen Quellcode ergibt -sich die Art des Plot-Stils. - -\begin{minipage}[c]{0.45\linewidth}% - \centering\includegraphics{plot-pdf-fig1} -\end{minipage}% -\hfill\begin{minipage}[c]{0.52\linewidth}% - \scriptsize -\begin{verbatim} -\psset{xunit=0.003cm,yunit=1.5cm} -\begin{pspicture}(-0.25,-0.25)(1950,4) - \fileplot[plotstyle=line, linewidth=1.5pt]{% - fileplot.data} - \psaxes[dx=400,Dx=400]{->}(1900,4) - \multido{\n=200+200}{9}{% - \psline[linestyle=dotted](\n,0)(\n,4) - } - \multido{\n=+1}{5}{% - \psline[linestyle=dotted](0,\n)(1800,\n) - } -\end{pspicture} -\end{verbatim} -\end{minipage}% - -\begin{minipage}[c]{0.48\linewidth}% -\centering\includegraphics{plot-pdf-fig2} -\end{minipage}% -\hfill{}\begin{minipage}[c]{0.48\linewidth}% -\scriptsize\begin{center} -\begin{verbatim} -\psset{xunit=1.5cm,yunit=6cm} -\begin{pspicture}(-0.25,-.25)(4.25,1) - \fileplot[plotstyle=dots]{feigenbaum.data} - \psaxes{->}(0,0)(4.05,1) - \rput(4,-0.05){$x$} - \rput(0.2,1.05){$y$} - \rput[l](0.2,3.5){Feigenbaum-Diagramm} -\end{pspicture} -\end{verbatim} -\end{center} -\end{minipage}% - - -\texttt{fileplot} hat den Vorteil der einfachen Anwendung, aber den -wesentlichen Nachteil, extrem speicherintensiv zu sein, denn \TeX{} -muss erst alle Zahlenpaare vor einer weiteren Verarbeitung laden. Man -kann davon ausgehen, dass man bei mehr als 1000 Punkten -Schwierigkeiten mit der standardmäßig eingestellten -\TeX-Speicherkapazität bekommen kann. Weiterhin erhöht sich durch das -Laden der Zahlenpaare die Zeit eines Kompilationsvorgangs ganz -erheblich. - -Eine Möglichkeit, Speicherproblemen aus dem Weg zu gehen, ist die -Anwendung der \texttt{\textbackslash{}PSTtoEPS}-Funktion des Pakets -\texttt{pst-eps}, auf die hier jedoch nicht weiter eingegangen wird -(siehe dazu \cite{pstricks}). - - -\section{Beispiel für \texttt{\textbackslash{}dataplot}} - -Ebenso wie \texttt{\textbackslash{}fileplot} benötigt -\texttt{\textbackslash{}dataplot} einen externen Datensatz, der durch -eine andere Anwendung erstellt wurde. Im Gegensatz dazu kann dieser -externe Datensatz jedoch nicht mit \texttt{\textbackslash{}dataplot} -selbst geladen werden. Dies erfolgt mit dem oben angegebenen -Befehl \texttt{\textbackslash{}readdata}, beispielsweise - -\texttt{\textbackslash{}readdata\{\textbackslash{}feigenbaum\}\{feigenbaum.data\}} - -\texttt{\textbackslash{}feigenbaum} ist dann der Name des -Grafikobjekts. Die Zahl der eingelesenen Dateien ist nur durch den -Speicher bestimmt, d.\,h. dass mit \texttt{\textbackslash{}dataplot} -einfache Overlays möglich sind. Die Ausgabe dieser Daten erfolgt mit -\texttt{\textbackslash{}dataplot\{<Objektname>\}}, beispielsweise -\texttt{\textbackslash{}dataplot\{\textbackslash{}feigenbaum\}}. - -Das angegebene Beispiel zeigt zwei getrennte Datendateien, die in -einem Koordinatensystem dargestellt werden. Es handelt sich um die -Sortierzeiten der Verfahren "`Bubble-Sort"' und "`Select-Sort"' in -Abhängigkeit der Anzahl der zu sortierenden Elemente, wobei das -Verfahren der Parameter ist. Die Anordnung der Elemente war zu Beginn -jeweils zufällig verteilt. - -\begin{minipage}[c]{0.55\linewidth}% - \centering\includegraphics{plot-pdf-fig3} -\end{minipage}% -\hfill{}\begin{minipage}[c]{0.42\linewidth}% - \scriptsize\begin{center} -\begin{verbatim} -\psset{xunit=0.0005cm,yunit=0.005cm} -\begin{pspicture}(0,0)(10000,1000) - \readdata{\bubble}{bubble.data} - \readdata{\select}{select.data} - \dataplot[plotstyle=line]{\bubble} - \dataplot[plotstyle=line]{\select} - \psline{->}(0,0)(10000,0) - \psline{->}(0,0)(0,1000) - \rput[l](40,920){Zeit} - \rput[r](9990,-30){Elemente} - \rput[l](4500,800){Bubble-Sort} - \rput[l](7500,200){Select-Sort} -\end{pspicture} -\end{verbatim} -\end{center} -\end{minipage}% - - -Grundsätzlich bleibt festzustellen, dass für den reinen Anwender zwischen -\texttt{dataplot} und \texttt{fileplot} formal kein wesentlicher Unterschied -besteht. Bei größeren Datenmengen bringt \texttt{dataplot} den Vorteil -der schnelleren Verarbeitung und Darstellung, wobei es dafür aber -noch speicherplatzintensiver als \texttt{fileplot} ist. - -Weiterhin benutzt \texttt{\textbackslash{}dataplot} intern die im -nächsten Abschnitt beschriebene Funktion -\texttt{\textbackslash{}listplot}, wenn Parameter angegeben werden. -Daraus folgt, dass \texttt{\textbackslash{}dataplot} letztlich nur -Sinn macht, wenn Polygonzüge gezeichnet werden sollen. In diesem Fall -zeichnet sich diese Funktion durch eine größere Plot-Geschwindigkeit -aus, macht aber andererseits nichts anderes als die -\texttt{pspolygon}-Funktion. - - -\section{Beispiel für \texttt{\textbackslash{}listplot}} - -Im Gegensatz zu den vorhergehenden Plot-Funktionen wird das Argument -von \texttt{\textbackslash{}listplot} zuerst von \TeX{} expandiert, -wenn es sich um einen \TeX-Befehl handelt, andernfalls wird es -unverändert an \PS\ durchgereicht. Daraus folgt, dass man komplette -\PS-Programme im Argument von \texttt{\textbackslash{}listplot} -ablegen kann. Diese Möglichkeit der Kombination von \TeX{} und -\PS\ bleibt jedoch in der gesamten Literatur zu \texttt{PSTricks} -faktisch unberücksichtigt. Dies liegt wohl auch daran, dass -\texttt{PSTricks} sehr \PS-nah programmiert wurde, sodass sich -letztlich für jede Anwendung entsprechende \texttt{PSTricks}-Befehle -finden lassen. - -Das angegebene Beispiel zeigt in der Originaldarstellung die -Entwicklung eines Hènon-Attraktors. Die rechte Grafik enthält -zusätzlich zum normalen Datensatz einen durch erweiterten \PS-Code -erzwungenen "`Draft"'-Hinweis. Hierbei ist zum Verständnis allerdings -eine Kenntnis der \PS-Befehle unabdingbar, wenn dies fehlerfrei -erfolgen soll. Der angegebene Source\-code enthält aus Platzgründen -nicht die eigentlichen Daten, die lediglich aus einer Folge von -Zahlenpaaren bestehen, die durch "`space"' voneinander zu trennen -sind. - -\begin{minipage}[c]{0.48\linewidth}% -\centering\includegraphics{plot-pdf-fig4} -\end{minipage}% -\hfill{}\begin{minipage}[c]{0.48\linewidth}% -\centering\includegraphics{plot-pdf-fig5} -\end{minipage} - -\begin{minipage}[t]{0.48\linewidth}% -\scriptsize\begin{verbatim} -\readdata{\henon}{henon.dat} -\psset{xunit=1.5cm, yunit=3cm} -\begin{pspicture}(-2,-0.75)(2.25,1.5) - \psaxes{->}(0,0)(-2,-0.5)(1.5,1.25) - \listplot[% - showpoints=true,% - plotstyle=curve]{\henon} -\end{pspicture} -\end{verbatim} -\end{minipage}% -\hfill{}\begin{minipage}[t]{0.48\linewidth}% -\scriptsize\begin{center}\begin{verbatim} -\newcommand{\DataB}{% - [ ... Daten ... ] - gsave % speichere Grafikstatus - /Helvetica findfont 40 scalefont setfont - 45 rotate % Rotiere um 45 Grad - 0.9 setgray % 1 entspricht Weiß - -60 10 moveto (DRAFT) show - grestore -} -\psset{xunit=1.5cm, yunit=3cm} -\begin{pspicture}(-3,-0.75)(2.25,1.5) - \psaxes{->}(0,0)(-2,-0.5)(1.5,1.25) - \listplot[% - showpoints=true,% - plotstyle=curve]{\dataB} -\end{pspicture} -\end{verbatim} -\end{center} -\end{minipage}% - - -Zum Manipulieren des Datensatzes von \texttt{\textbackslash{}listplot} -kann alternativ auch die entsprechende Funktion aus \texttt{pst-plot} -verändert werden. Möchte man beispielsweise, aus welchen Gründen auch -immer, die $x|y$-Werte vertauschen und den Graphen um 45° rotieren -lassen (was einer Rotation um die x-Achse mit anschließender Drehung -entspricht), so kann dies einfach durch Neudefinition von -\texttt{\textbackslash{}pst@def} erfolgen, was dann zur folgenden -Abbildung führt: - -\begin{minipage}{0.48\linewidth} -\scriptsize\begin{center}\begin{verbatim} -\makeatletter -\pst@def{ScalePoints}<% -%---------------------------------------- - 45 rotate % rotiere alle Objekte -%---------------------------------------- - /y ED /x ED - counttomark dup dup cvi eq - not { exch pop } if - /m exch def /n m 2 div cvi def - n { -%---------------------------------------- - exch % tausche oberste Stackelemente -%---------------------------------------- - y mul m 1 roll - x mul m 1 roll - /m m 2 sub - def } repeat> -\makeatother -\end{verbatim} -\end{center}\end{minipage}% -\hfill -\begin{minipage}{0.48\linewidth} - \centering\includegraphics{plot-pdf-fig6} -\end{minipage} - - -\bibliography{plot} - -\address{Herbert}{Voß}{Wasgenstr. 21\\14129 Berlin\\voss@perce.de} -\address{Laura Elizabeth}{Jackson}{Raleigh, North Carolina (USA)\\ - lejacks2@unity.ncsu.edu } -\end{document} |