Improved indices. Added optional parameter for index to *term* macros.

This commit is contained in:
2015-11-22 23:16:22 +01:00
parent 3d4d778bdd
commit 993ab5d8e7
16 changed files with 138 additions and 134 deletions

View File

@@ -34,13 +34,13 @@ Zwecken genutzt wird.
Ein Datenplot muss ausreichend beschriftet werden:
\begin{itemize}
\item Alle Achsen m\"ussen eine Bezeichnung und eine Einheit erhalten\\
(z.B. \code{xlabel('Geschwindigkeit [m/s]'}).
(z.B. \code[xlabel()]{xlabel('Geschwindigkeit [m/s]'}).
\item Wenn mehrere Dinge in einem Plot dargestellt werden, m\"ussen
diese mit einer Legende oder \"ahnlichem benannt werden
\matlabfun{legend()}.
\item Mehrere Plots mit den gleichen Gr\"o{\ss}en auf den Achsen,
m\"ussen den gleichen Wertebereich auf den Achsen zeigen
(z.B. \code{xlim([0 100])}.\\
(z.B. \code[xlim()]{xlim([0 100])}.\\
Ausnahmen sind m\"oglich, sollten aber in der
Abbildungsunterschrift erw\"ahnt werden.
\item Die Beschriftung mu{\ss} gro{\ss} genug sein, um lesbar zu sein.
@@ -142,7 +142,7 @@ darzustellen (\figref{misleadingsymbolsfig}).
\section{Das Plottingsystem von \matlab{}}
Plotten in \matlab{} ist zun\"achst einmal einfach. Durch den Aufruf
von \code{plot(x, y)} wird ein einfacher, schlichter Linienplot
von \code[plot()]{plot(x, y)} wird ein einfacher, schlichter Linienplot
erstellt. Diesem Plot fehlen jedoch jegliche Annotationen wie
Achsbeschriftungen, Legenden, etc. Es gibt zwei M\"oglichkeiten diese
hinzuzuf\"ugen: (i) das Graphische User Interface oder (ii) die
@@ -212,9 +212,9 @@ Datens\"atzen erstellt werden soll.
\subsection{Einfaches Plotten}
Einen einfachen Linienplot zu erstellen ist denkbar
einfach. Angenommen, es existiert einer Variable \code{y} im
einfach. Angenommen, es existiert einer Variable \varcode{y} im
\enterm{Workspace}, die die darzustellenden Daten enth\"alt. Es
gen\"ugt folgender Funktionsaufruf: \code{plot(y)}. Wenn bislang noch
gen\"ugt folgender Funktionsaufruf: \code[plot()]{plot(y)}. Wenn bislang noch
keine Abbildung erstellt wurde, \"offnet \matlab{} ein neues Fenster
und stellt die Daten als Linienplot dar. Dabei werden die Datenpunkte
durch eine Linie verbunden. Die Messpunkte selbst sind nicht
@@ -223,14 +223,14 @@ ersetzt. Das Festhalten von bestehenden Plots kann an- oder abgestellt
werden indem \code{hold on} bzw. \code{hold off} vor dem \code{plot()}
Befehl aufgerufen wird.
Im obigen Plot Aufruf wird nur ein Argument, das \code{y}, an die
Funktion \code{plot} \"ubergeben. \code{plot} erh\"alt nur die
Im obigen Plot Aufruf wird nur ein Argument, das \varcode{y}, an die
Funktion \code{plot()} \"ubergeben. \code{plot()} erh\"alt nur die
y-Werte. \matlab{} substituiert in diesem Fall die fehlenden x-Werte,
indem eine Schrittweite von 1 angenommen wird. Die x-Achse reicht also
von 1 bis zur L\"ange des Vektors \code{y}. Diese Skalierung der
von 1 bis zur L\"ange des Vektors \varcode{y}. Diese Skalierung der
x-Achse ist nur in den wenigsten F\"allen erw\"unscht. Besser ist es,
die zugeh\"origen x-Werte explixit zu \"ubergeben und so z.B. die
y-Werte als Funktion der Zeit darzustellen (\code{plot(x, y)}).
y-Werte als Funktion der Zeit darzustellen (\code[plot()]{plot(x, y)}).
Standard\"a{\ss}ig wird der erste Lininenplot in blau, mit
durchgezogener Linie, ohne Marker und der Strichst\"arke 1
dargestellt. Der zweite Linienplot erh\"alt automatisch die Farbe
@@ -291,11 +291,11 @@ die Farbe und die verschiedenen Marker.
\subsection{Ver\"andern von Linieneigenschaften}
Die Eigenschaften des Linienplots k\"onnen \"uber weitere Argumente
des \code{plot} Befehls ver\"andert werden. Folgender Aufruf (Listing
der \code{plot()} Funktion ver\"andert werden. Folgender Aufruf (Listing
\ref{settinglineprops})erzeugt einen roten Linienplot mit gepunkteter
Linie der St\"arke 1.5 und Sternmarkern an den Positionen der
Datenpunkte. Zus\"atzlich wird noch die Eigenschaft
\codeterm{displayname} gesetzt, um dem Linienplot einen Namen zu
\code{displayname} gesetzt, um dem Linienplot einen Namen zu
geben, der in einer Legende verwendet werden kann.
\begin{lstlisting}[label=settinglineprops, caption={Setzen von Linieneigenschaften beim \varcode{plot} Aufruf}]
@@ -307,46 +307,47 @@ geben, der in einer Legende verwendet werden kann.
\subsection{Ver\"andern von Achseneigenschaften}
Das erste, was ein Plot zus\"atzlich braucht, ist eine
Achsenbeschriftung. Mithilfe der Funktionen \code{xlabel('Time [ms]')}
und \code{ylabel('Voltage [V]')} k\"onnen diese gesetzt
Achsenbeschriftung. Mithilfe der Funktionen \code[xlabel()]{xlabel('Time [ms]')}
und \code[ylabel()]{ylabel('Voltage [V]')} k\"onnen diese gesetzt
werden.
Standardm\"a{\ss}ig setzt Matlab die Grenzen der x- und y-Achse so,
dass die Daten hineinpassen. Dabei wird meist auf den n\"achsten
ganzzahligen Wert aufgerundet. Mit den Funktionen \code{xlim} und
\code{ylim} k\"onnen die Grenezen der Achsen aber auch manuell
eingestellt werden. Die Funktionen \code{xlim} und \code{ylim}
ganzzahligen Wert aufgerundet. Mit den Funktionen \code{xlim()} und
\code{ylim()} k\"onnen die Grenezen der Achsen aber auch manuell
eingestellt werden. Die Funktionen \code{xlim()} und \code{ylim()}
erwarten als Argument einen 2-elementigen Vektor mit dem Minimum und
dem Maximum der jeweiligen Achse. Tabelle \ref{plotaxisprops} listet
weitere h\"aufig genutzte Einstellungen der Achsen. Mit der \code{set}
- Funktion k\"onnen diese ver\"andert werden wie in Zeile 15 in
Listing \ref{niceplotlisting} gezeigt. Die \code{set} - Funktion
erwartet als erstes Argument ein sogenanntes Handle der Achse, dieses
wird gefolgt von einer beliebig langen Reihe von Eigenschaft-Wert
Paaren. Soll z.B. das Gitternetz der x-Achse gezeigt werden, wird die
Eigenschaft \codeterm{XGrid} auf den Wert \codeterm{'on'} gesetzt:
\code{set(gca, 'XGrid', 'on');}. Das erste Argument ist ein Aufruf der
Funktion \code{gca}, ``get-current-axis'' und ist das Achsenhandle der
gerade aktiven Achse.
weitere h\"aufig genutzte Einstellungen der Achsen. Mit der
\code{set()} - Funktion k\"onnen diese ver\"andert werden wie in Zeile
15 in Listing \ref{niceplotlisting} gezeigt. Die \code{set()} -
Funktion erwartet als erstes Argument ein sogenanntes Handle der
Achse, dieses wird gefolgt von einer beliebig langen Reihe von
Eigenschaft-Wert Paaren. Soll z.B. das Gitternetz der x-Achse gezeigt
werden, wird die Eigenschaft \code{XGrid} auf den Wert
\varcode{'on'} gesetzt: \code[set()!set(gca, 'XGrid',
'on')]{set(gca, 'XGrid', 'on');}. Das erste Argument ist ein Aufruf
der Funktion \code{gca}, \enterm{get-current-axis} und ist das Achsenhandle
der gerade aktiven Achse.
\begin{table}[tp]
\titlecaption{Ausgew\"ahlte Eigenschaften der Achse.}{ Alle Eigenschaften der Achse findet man in der Hilfe oder im \codeterm{Property Editor} (\figref{ploteditorfig}). Wenn es eine definierte Auswahl von Einstellungen gibt, z.B. bei der Eigenschaft \codeterm{Box}, dann ist die Standardeinstellungen als erstes gelistet.}\label{plotaxisprops}
\titlecaption{Ausgew\"ahlte Eigenschaften der Achse.}{ Alle Eigenschaften der Achse findet man in der Hilfe oder im \codeterm{Property Editor} (\figref{ploteditorfig}). Wenn es eine definierte Auswahl von Einstellungen gibt, z.B. bei der Eigenschaft \code{Box}, dann ist die Standardeinstellungen als erstes gelistet.}\label{plotaxisprops}
\begin{tabular*}{1\textwidth}{lp{6.3cm}p{6cm}} \hline
\textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline
\codeterm{Box} & Definiert, ob der Rahmen der Achse vollst\"andig gezeichnet wird. & $\{'on'|'off'\}$ \\
\codeterm{Color} & Hintergrundfarbe des Koordinatensystems. & Beliebige RGB, CMYK ... Werte. \\
\codeterm{Fontname} & Der Name der Schriftart. & Im System installierte Schriften. \\
\codeterm{FontSize} & Gr\"o{\ss}e der Schrift. & Skalarer Wert.\\
\codeterm{FontUnit} & Einheit, in der die Schriftgr\"o{\ss}e bestimmt wird. & $\{'points' | 'centimeters' | 'inches', ...\}$\\
\codeterm{FontWeight} & Fett- oder Normalsatz der Schrift. & $\{'normal' | 'bold'\}$\\
\code{Box} & Definiert, ob der Rahmen der Achse vollst\"andig gezeichnet wird. & $\{'on'|'off'\}$ \\
\code{Color} & Hintergrundfarbe des Koordinatensystems. & Beliebige RGB, CMYK ... Werte. \\
\code{Fontname} & Der Name der Schriftart. & Im System installierte Schriften. \\
\code{FontSize} & Gr\"o{\ss}e der Schrift. & Skalarer Wert.\\
\code{FontUnit} & Einheit, in der die Schriftgr\"o{\ss}e bestimmt wird. & $\{'points' | 'centimeters' | 'inches', ...\}$\\
\code{FontWeight} & Fett- oder Normalsatz der Schrift. & $\{'normal' | 'bold'\}$\\
% & 'd' \\ ??????
\codeterm{TickDir} & Richtung der Teilstriche auf der Achse. & $\{'in' | 'out'\}$\\
\codeterm{TickLength} & L\"ange der Haupt- und Nebenteilstriche & \\
\codeterm{X-, Y-, ZDir} & Richtung der Achsskalierung. & $\{'normal' | 'reversed'\}$\\
\codeterm{X-, Y-, ZGrid} & Sollen Gitternetzlinien gezeigt werden? & $\{'off'|'on'\}$ \\
\codeterm{X-, Y-, ZScale} & Lineare oder logarithmische Skalierung der Achse. & $\{'linear' | 'log'\}$\\
\codeterm{X-, Y-, ZTick} & Position der Teilstriche auf der Achse. & Vektor mit Positionen.\\
\codeterm{X-, Y-, ZTickLabel} & Beschriftung der Teilstriche. & Vektor mit entsprechenden Zahlen oder Cell-Array mit Strings.\\ \hline
\code{TickDir} & Richtung der Teilstriche auf der Achse. & $\{'in' | 'out'\}$\\
\code{TickLength} & L\"ange der Haupt- und Nebenteilstriche & \\
\code{X-, Y-, ZDir} & Richtung der Achsskalierung. & $\{'normal' | 'reversed'\}$\\
\code{X-, Y-, ZGrid} & Sollen Gitternetzlinien gezeigt werden? & $\{'off'|'on'\}$ \\
\code{X-, Y-, ZScale} & Lineare oder logarithmische Skalierung der Achse. & $\{'linear' | 'log'\}$\\
\code{X-, Y-, ZTick} & Position der Teilstriche auf der Achse. & Vektor mit Positionen.\\
\code{X-, Y-, ZTickLabel} & Beschriftung der Teilstriche. & Vektor mit entsprechenden Zahlen oder Cell-Array mit Strings.\\ \hline
\end{tabular*}
\end{table}
@@ -357,16 +358,16 @@ gerade aktiven Achse.
\titlecaption{Ausgew\"ahlte Eigenschaften der \codeterm{Figure}.}{Alle Eigenschaften der Figure findet man in der Hilfe von \matlab{} oder im \codeterm{Property Editor} wenn die Abbildung ausgew\"ahlt wurde (\figref{ploteditorfig}).}\label{plotfigureprops}
\begin{tabular*}{1\textwidth}{lp{6.3cm}p{6cm}} \hline
\textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline
\codeterm{Color} & Hintergrundfarbe der Zeichenfl\"ache. & Beliebige RGB, CMYK ... Werte. \\
\codeterm{PaperPosition} & Position der Abbildung auf dem Papier & 4-elementiger Vektor mit den Positionen der linken-unteren, und rechten-oberen Ecke. \\
\codeterm{PaperSize} & Gr\"o{\ss}e der des Papiers. & 2-elementiger Vektor mit der Papiergr\"o{\ss}e.\\
\codeterm{PaperUnits} & Einheit, in der die Papiergr\"o{\ss}e bestimmt wird. & $\{'inches' | 'centimeters' | 'normalized' | 'points'\}$\\
\codeterm{Visible} & Hilfreich, wenn ein Plot aus Performanzgr\"unden nicht auf dem Bildschirm gezeigt, sondern direkt gespeichert werden soll. & $\{'on' | 'off'\}$\\ \hline
\code{Color} & Hintergrundfarbe der Zeichenfl\"ache. & Beliebige RGB, CMYK ... Werte. \\
\code{PaperPosition} & Position der Abbildung auf dem Papier & 4-elementiger Vektor mit den Positionen der linken-unteren, und rechten-oberen Ecke. \\
\code{PaperSize} & Gr\"o{\ss}e der des Papiers. & 2-elementiger Vektor mit der Papiergr\"o{\ss}e.\\
\code{PaperUnits} & Einheit, in der die Papiergr\"o{\ss}e bestimmt wird. & $\{'inches' | 'centimeters' | 'normalized' | 'points'\}$\\
\code{Visible} & Hilfreich, wenn ein Plot aus Performanzgr\"unden nicht auf dem Bildschirm gezeigt, sondern direkt gespeichert werden soll. & $\{'on' | 'off'\}$\\ \hline
\end{tabular*}
\end{table}
Wie die Achse, hat auch das \codeterm{Figure} Element eine Reihe von
Eigenschaften, die nach Bedarf mit der \code{set} - Funktion gesetzt
Eigenschaften, die nach Bedarf mit der \code{set()} - Funktion gesetzt
werden k\"onnen (Tabelle \ref{plotfigureprops} listet die
meistverwendeten). Das erste Argument f\"ur \code{set()} ist jetzt
aber eine Handle f\"ur die Abbildung, nicht das
@@ -380,7 +381,7 @@ Aufruf des Skripts wird exakt der gleiche Plot (Abbildung
sind hier vor allem die Zeilen 2 und 3 in denen die Gr\"o{\ss}e der
Abbildung in Zentimetern definiert wird. In Zeile 16 wird die
Abbildung dann in genau der angegebenen Gr\"o{\ss}e im ``pdf'' Format
gespeichert. Dazu wird die Funktion \code{saveas} verwendet, die als
gespeichert. Dazu wird die Funktion \code{saveas()} verwendet, die als
erstes Argument wieder ein Handle auf die Figure erwartet. Das zweite
Argument ist der Dateiname, und zuletzt muss das gew\"unschte Format
(Box \ref{graphicsformatbox}) angegeben werden.
@@ -423,10 +424,10 @@ Homepage viele Beispiele mit zugeh\"origem Code
\end{minipage}
\hfill
\begin{minipage}[t]{0.5\textwidth}
Von \matlab{} unterst\"utzte Formate\footnote{Auswahl, mehr Information in der Hilfe zu \code{saveas}}:\\[2ex]
Von \matlab{} unterst\"utzte Formate\footnote{Auswahl, mehr Information in der Hilfe zu \code{saveas()}}:\\[2ex]
\begin{tabular}{|l|c|l|}
\hline
\textbf{Format} & \textbf{Typ} & \code{saveas} Argument \rule[-1.2ex]{0pt}{3.5ex} \\ \hline
\textbf{Format} & \textbf{Typ} & \code{saveas()} Argument \rule[-1.2ex]{0pt}{3.5ex} \\ \hline
pdf & Vektor & \varcode{'pdf'} \rule{0pt}{2.5ex} \\
eps & Vektor & \varcode{'eps'}, \varcode{'epsc'} \\
SVG & Vektor & \varcode{'svg'} \\