19.04.2013 Aufrufe

Diagramme erstellen mit pgfplots

Diagramme erstellen mit pgfplots

Diagramme erstellen mit pgfplots

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

Stefan Pinnow<br />

Dante Herbsttagung 2010<br />

Institut für Chemische Verfahrenstechnik<br />

TU Clausthal<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 1


Motivation / Ziel<br />

Motivation<br />

– . . . alles aus einem Guss<br />

– aber warum dann GNUplot-<strong>Diagramme</strong> einbinden?<br />

Ziel<br />

– <strong>Diagramme</strong> für einen Artikel<br />

→ schwarz/weiß-<strong>Diagramme</strong><br />

– nicht jeden Befehl merken<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 2


Motivation / Ziel<br />

Motivation<br />

– . . . alles aus einem Guss<br />

– aber warum dann GNUplot-<strong>Diagramme</strong> einbinden?<br />

Ziel<br />

– <strong>Diagramme</strong> für einen Artikel<br />

→ schwarz/weiß-<strong>Diagramme</strong><br />

– nicht jeden Befehl merken<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 2


Motivation / Ziel<br />

Motivation<br />

– . . . alles aus einem Guss<br />

– aber warum dann GNUplot-<strong>Diagramme</strong> einbinden?<br />

Ziel<br />

– <strong>Diagramme</strong> für einen Artikel<br />

→ schwarz/weiß-<strong>Diagramme</strong><br />

– nicht jeden Befehl merken<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 2


Grundlagen<br />

Paket laden<br />

1 \input <strong>pgfplots</strong>.tex % Plain TeX<br />

\usepackage{<strong>pgfplots</strong>} % LaTeX<br />

\usemodule[<strong>pgfplots</strong>] % ConTeXt<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 3


Grundlagen<br />

Paket laden<br />

1 \input <strong>pgfplots</strong>.tex % Plain TeX<br />

\usepackage{<strong>pgfplots</strong>} % LaTeX<br />

\usemodule[<strong>pgfplots</strong>] % ConTeXt<br />

Standardachse<br />

1 \begin{tikzpicture}<br />

\begin{axis}<br />

% Plot code<br />

\end{axis}<br />

5 \end{tikzpicture}<br />

1<br />

0.5<br />

0<br />

0 0.5 1<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 3


Grundlagen<br />

Paket laden<br />

1 \input <strong>pgfplots</strong>.tex % Plain TeX<br />

\usepackage{<strong>pgfplots</strong>} % LaTeX<br />

\usemodule[<strong>pgfplots</strong>] % ConTeXt<br />

logarithmische x-Achse<br />

1 \begin{tikzpicture}<br />

\begin{semilogxaxis}<br />

% Plot code<br />

\end{semilogxaxis}<br />

5 \end{tikzpicture}<br />

1<br />

0.5<br />

0<br />

10 0<br />

10 0.2<br />

10 0.4<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 3


Grundlagen<br />

Paket laden<br />

1 \input <strong>pgfplots</strong>.tex % Plain TeX<br />

\usepackage{<strong>pgfplots</strong>} % LaTeX<br />

\usemodule[<strong>pgfplots</strong>] % ConTeXt<br />

logarithmische Achsen<br />

1 \begin{tikzpicture}<br />

\begin{loglogaxis}<br />

% Plot code<br />

\end{loglogaxis}<br />

5 \end{tikzpicture}<br />

10 0.4<br />

10 0.2<br />

10 0<br />

10 0<br />

10 0.2<br />

10 0.4<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 3


Grundlagen<br />

Paket laden<br />

1 \input <strong>pgfplots</strong>.tex % Plain TeX<br />

\usepackage{<strong>pgfplots</strong>} % LaTeX<br />

\usemodule[<strong>pgfplots</strong>] % ConTeXt<br />

logarithmische Achsen<br />

1 \begin{tikzpicture}<br />

\begin{loglogaxis}<br />

% Plot code<br />

\end{loglogaxis}<br />

5 \end{tikzpicture}<br />

10 0.4<br />

10 0.2<br />

10 0<br />

10 0<br />

10 0.2<br />

10 0.4<br />

„neue“ Verbesserungen<br />

nutzen<br />

1 \<strong>pgfplots</strong>set{compat = newest}<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 3


Kleiner Datensatz<br />

Concentration Rate<br />

/ mmol dm −3 / s −1<br />

338.1 266.45<br />

169.1 143.43<br />

84.5 64.80<br />

42.3 34.19<br />

21.1 9.47<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 4


Kleiner Datensatz<br />

Concentration Rate<br />

/ mmol dm −3 / s −1<br />

338.1 266.45<br />

169.1 143.43<br />

84.5 64.80<br />

42.3 34.19<br />

21.1 9.47<br />

1 \addplot coordinates {<br />

( 338.1, 266.45 )<br />

( 169.1, 143.43 )<br />

( 84.5, 64.80 )<br />

5 ( 42.3, 34.19 )<br />

( 21.1, 9.47 )<br />

};<br />

200<br />

100<br />

0<br />

0 100 200 300<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 4


Kleiner Datensatz<br />

Concentration Rate<br />

/ mmol dm −3 / s −1<br />

338.1 266.45<br />

169.1 143.43<br />

84.5 64.80<br />

42.3 34.19<br />

21.1 9.47<br />

1 \addplot coordinates {<br />

( 338.1, 266.45 )<br />

( 169.1, 143.43 )<br />

( 84.5, 64.80 )<br />

5 ( 42.3, 34.19 )<br />

( 21.1, 9.47 )<br />

};<br />

200<br />

100<br />

0<br />

0 100 200 300<br />

keine Farbe<br />

keine Linien<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 4


Kleiner Datensatz<br />

1 \addplot[<br />

color = black,<br />

fill = black,<br />

mark = *,<br />

5 only marks<br />

] coordinates {<br />

( 338.1, 266.45 )<br />

( 169.1, 143.43 )<br />

( 84.5, 64.80 )<br />

10 ( 42.3, 34.19 )<br />

( 21.1, 9.47 )<br />

};<br />

200<br />

100<br />

0<br />

0 100 200 300<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 4


Kleiner Datensatz<br />

1 \addplot[<br />

color = black,<br />

fill = black,<br />

mark = *,<br />

5 only marks<br />

] coordinates {<br />

( 338.1, 266.45 )<br />

( 169.1, 143.43 )<br />

( 84.5, 64.80 )<br />

10 ( 42.3, 34.19 )<br />

( 21.1, 9.47 )<br />

};<br />

200<br />

100<br />

0<br />

0 100 200 300<br />

Trendlinie hinzufügen<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 4


Kleiner Datensatz<br />

1 \addplot[<br />

color = black,<br />

fill = black,<br />

mark = *,<br />

5 only marks<br />

] coordinates { ... };<br />

\addplot[<br />

color = black,<br />

10 mark = none<br />

]<br />

coordinates {<br />

( 0, 0 )<br />

( 350, 279 )<br />

15 };<br />

300<br />

200<br />

100<br />

0<br />

0 100 200 300<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 4


Kleiner Datensatz<br />

1 \addplot[<br />

color = black,<br />

fill = black,<br />

mark = *,<br />

5 only marks<br />

] coordinates { ... };<br />

\addplot[<br />

color = black,<br />

10 mark = none<br />

]<br />

coordinates {<br />

( 0, 0 )<br />

( 350, 279 )<br />

15 };<br />

300<br />

200<br />

100<br />

0<br />

0 100 200 300<br />

Achsen beschriften<br />

Achsenli<strong>mit</strong>s anpassen<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 4


Kleiner Datensatz<br />

1 \begin{axis}[<br />

xlabel =<br />

Concentration\,/\,%<br />

mmol\,dm$^{-3}$,<br />

5 xmax = 400,<br />

xmin = 0,<br />

ylabel = Rate\,/\,s$^{-1}$,<br />

ymax = 300,<br />

ymin = 0<br />

10 ]<br />

...<br />

Rate / s −1<br />

300<br />

200<br />

100<br />

0<br />

0 100 200 300 400<br />

Concentration / mmol dm −3<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 4


Großer Datensatz<br />

Datenfile „data-set-two.txt“<br />

1 Time a b c d<br />

0 49 7 41 1.3<br />

67 55 9 33 1.6<br />

134 61 10 26 1.9<br />

5 200 65 12 20 1.9<br />

...<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 5


Großer Datensatz<br />

Datenfile „data-set-two.txt“<br />

1 Time a b c d<br />

0 49 7 41 1.3<br />

67 55 9 33 1.6<br />

134 61 10 26 1.9<br />

5 200 65 12 20 1.9<br />

...<br />

Einlesen des Datenfiles<br />

1 \<strong>pgfplots</strong>tableread{data-set-two.txt}<br />

\datatable<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 5


Großer Datensatz<br />

Erzeugen des Plots<br />

1 \<strong>pgfplots</strong>tableread{data-set-two.txt}<br />

\datatable<br />

\addplot table[y = a] from \datatable ;<br />

5 \addplot table[y = b] from \datatable ;<br />

\addplot table[y = c] from \datatable ;<br />

\addplot table[y = d] from \datatable ;<br />

60<br />

40<br />

20<br />

0<br />

0 500 1,000<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 5


Großer Datensatz<br />

Alternative<br />

1 \<strong>pgfplots</strong>tableread{data-set-two.txt}<br />

\datatable<br />

5<br />

\addplot table[y = a] from \datatable ;<br />

\addplot table[y = b] {data-set-two.txt} ;<br />

10 \addplot table[y index = 3] {data-set-two.txt} ;<br />

\addplot table[y index = 4] from \datatable ;<br />

60<br />

40<br />

20<br />

0<br />

0 500 1,000<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 5


Großer Datensatz<br />

Hinzufügen einer Legende<br />

1 \addplot table[y = a] from \datatable ;<br />

\addplot table[y = b] from \datatable ;<br />

\addplot table[y = c] from \datatable ;<br />

\addplot table[y = d] from \datatable ;<br />

5<br />

\legend{%<br />

Component \textbf{a},<br />

Component \textbf{b},<br />

Component \textbf{c},<br />

10 Component \textbf{d},<br />

}<br />

60<br />

40<br />

20<br />

0<br />

Component a<br />

Component b<br />

Component c<br />

Component d<br />

0 500 1,000<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 5


Großer Datensatz<br />

Alternative<br />

1 \begin{axis}[<br />

legend entries = {%<br />

Component \textbf{a},<br />

Component \textbf{b},<br />

5 Component \textbf{c},<br />

Component \textbf{d},<br />

},<br />

]<br />

10 \addplot table[y = a] from \datatable ;<br />

\addplot table[y = b] from \datatable ;<br />

\addplot table[y = c] from \datatable ;<br />

\addplot table[y = d] from \datatable ;<br />

60<br />

40<br />

20<br />

0<br />

Component a<br />

Component b<br />

Component c<br />

Component d<br />

0 500 1,000<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 5


Großer Datensatz<br />

Noch eine Alternative<br />

1 \addplot table[y = a] from \datatable ;<br />

\addlegendentry{%<br />

Component \textbf{a}};<br />

\addplot table[y = b] from \datatable ;<br />

5 \addlegendentry{%<br />

Component \textbf{b}};<br />

...<br />

60<br />

40<br />

20<br />

0<br />

Component a<br />

Component b<br />

Component c<br />

Component d<br />

0 500 1,000<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 5


Großer Datensatz<br />

Schönheitskorrekturen<br />

– Achsenbeschriftungen hinzufügen<br />

– Linien entfernen<br />

– 1000er Trenner entfernen<br />

1 \pgfkeys{<br />

/pgf/number format/<br />

set thousands separator =<br />

}<br />

Relative amount / %<br />

80<br />

60<br />

40<br />

20<br />

Component a<br />

Component b<br />

Component c<br />

Component d<br />

0<br />

0 200 400 600 800 1000<br />

Time / s<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 5


Großer Datensatz<br />

Eigene Marker definieren<br />

1 \pgfdeclareplotmark{halfcircle}{%<br />

\begin{pgfscope}<br />

\pgfsetfillcolor{white}%<br />

\pgfpathcircle{\pgfpoint{0pt}{0pt}}<br />

5 {\pgfplotmarksize}<br />

\pgfusepathqfillstroke<br />

\end{pgfscope}%<br />

\pgfpathmoveto<br />

{\pgfpoint{\pgfplotmarksize}{0pt}}<br />

10 \pgfpatharc{0}{180}{\pgfplotmarksize}<br />

\pgfpathclose<br />

\pgfusepathqfill<br />

}<br />

Ergebnis (200 %)<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 6


Großer Datensatz<br />

neuen Marker verwenden<br />

1 \addplot[mark = halfcircle, ...<br />

. . . <strong>mit</strong> Optionen<br />

1 \addplot[<br />

mark = halfcircle,<br />

mark options = {rotate = 90},<br />

1 [<br />

]<br />

Legende verschieben<br />

legend style = { at = {(0.6,0.75)}}<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 7


Relative amount / %<br />

80<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

Component a<br />

Component b<br />

Component c<br />

Component d<br />

0<br />

0 200 400 600 800 1000<br />

Time / s<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 8


Ein experimentelles Spektrum<br />

1 [<br />

was wir schon kennen<br />

xlabel = Chemische<br />

Verschiebung\,/\,ppm,<br />

xmin = 18,<br />

5 xmax = 24,<br />

ymax = 1.25,<br />

ymin = 0<br />

] \addplot[<br />

color = black,<br />

10 mark = none<br />

] table {plots/data/data-set-three.txt};<br />

1<br />

0.5<br />

0<br />

18 20 22 24<br />

Chemische Verschiebung / ppm<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 9


Ein experimentelles Spektrum<br />

y-Achsenbeschriftung<br />

entfernen<br />

1 [yticklabels = ]<br />

18 20 22 24<br />

Chemical shift / ppm<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 10


Ein experimentelles Spektrum<br />

y-Achsenbeschriftung<br />

entfernen<br />

1 [yticklabels = ]<br />

x-Achse umdrehen<br />

1 \addplot[<br />

x dir = reverse,<br />

...<br />

24<br />

22<br />

20<br />

Chemical shift / ppm<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 10<br />

18


Ein experimentelles Spektrum<br />

Peaks beschriften<br />

1 \node[<br />

coordinate,<br />

pin = {[rotate=90]right:22.26}<br />

] at (axis cs:22.26,1.1) { };<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 11<br />

22.26


Ein experimentelles Spektrum<br />

Peaks beschriften<br />

1 \node[<br />

coordinate,<br />

pin = {[rotate=90]right:22.26}<br />

] at (axis cs:22.26,1.1) { };<br />

gedrehte Beschriftung<br />

1 \node[<br />

coordinate,<br />

pin = {[rotate=90]5:22.32}<br />

] at (axis cs:22.32,1.1) { };<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 11<br />

22.26<br />

22.32


Ein experimentelles Spektrum<br />

1 [<br />

x dir<br />

xlabel<br />

= reverse,<br />

= Chemical shift\,/\,ppm,<br />

xmin = 18,<br />

5 xmax = 24,<br />

ymax = 1.75,<br />

ymin = 0,<br />

10<br />

yticklabels =<br />

] \addplot[<br />

color = black,<br />

mark = none<br />

] table from {plots/data/data-set-three.txt};<br />

\node[<br />

15 coordinate,<br />

pin = {[rotate=90]5:22.32}<br />

] at (axis cs:22.32,1.1) { }; \node[<br />

coordinate,<br />

pin = {[rotate=90]right:22.26}<br />

20 ] at (axis cs:22.26,1.1) { }; ...<br />

24<br />

23<br />

22.32<br />

22.26<br />

21.96<br />

21.90<br />

21.26<br />

Chemical shift / ppm<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 12<br />

22<br />

21<br />

20<br />

19.03<br />

19<br />

18.32<br />

18


Funktionen <strong>mit</strong> GNUplot<br />

Formel<br />

E(Θ) = K<br />

(K Θ)K−1<br />

(K − 1)!<br />

exp(−K Θ)<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 13


Funktionen <strong>mit</strong> GNUplot<br />

Formel<br />

E(Θ) = K<br />

1 % number of CSTRs<br />

\newcommand\K{3}<br />

(K Θ)K−1<br />

(K − 1)!<br />

exp(−K Θ)<br />

\addplot gnuplot[<br />

5 id=cascade_model_full,<br />

domain=\xmin:\xmax,<br />

samples=101,<br />

]<br />

{\K * (\K*x)^(\K-1) / (\K-1)!<br />

10 * exp(-\K * x)};<br />

E(Θ)<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

0 1 2 3<br />

Θ<br />

-shell-escape nicht<br />

vergessen<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 13


Funktionen <strong>mit</strong> GNUplot<br />

cascade_model_full.gnuplot<br />

1 set table "cascade_model_full.table"; set format "%.5f"<br />

set format "%.7e";; set samples 101; set dummy x,y; plot [x=0:3] 3* (3*<br />

1<br />

cascade_model_full.table<br />

# Curve 0 of 1, 101 points # Curve title: "3* (3*x)**(3-1) / (3-1)! *<br />

exp(-3* x)" # x y type 0.0000000e+000 0.0000000e+000 i 3.0000000e-002<br />

1.1104264e-002 i 6.0000000e-002 4.0594132e-002 i ...<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 14


Funktionen <strong>mit</strong> GNUplot<br />

E(Θ)<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

Anteil des abfließenden<br />

Stromes, der älter<br />

als Θ ′ ist.<br />

0<br />

0 0.5 1 Θ 1.5 2 2.5 3<br />

′<br />

Θ<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 15


Berechnungen <strong>mit</strong> GNUplot (und Co.)<br />

erstes Beispiel noch einmal (Kleiner Datensatz)<br />

Rate / s −1<br />

300<br />

200<br />

100<br />

0<br />

0 100 200 300 400<br />

Concentration / mmol dm −3<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 16


Berechnungen <strong>mit</strong> GNUplot (und Co.)<br />

erstes Beispiel noch einmal (Kleiner Datensatz)<br />

1 ...<br />

% plot regression curve with GNUplot (calculated also by GNUplot)<br />

\addplot [raw gnuplot] gnuplot [id=conc_rate] {<br />

5 % define function which should be fitted<br />

f(x)=a*x;<br />

% let gnuplot fit using column 1 and 2 of the data file<br />

fit f(x) ’conc_rate.txt’ using 1:2 via a;<br />

% Plot the function with the specified plot range<br />

10 plot [x=\xmin:350] f(x); };<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 16


Berechnungen <strong>mit</strong> GNUplot (und Co.)<br />

erstes Beispiel noch einmal (Kleiner Datensatz)<br />

300<br />

measured data<br />

external program + <strong>pgfplots</strong><br />

200<br />

external program + GNUplot<br />

everything GNUplot<br />

everything <strong>pgfplots</strong><br />

Rate / s −1<br />

100<br />

0<br />

0 100 200 300 400<br />

Concentration / mmol dm −3<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 16


Rate /<br />

Berechnungen <strong>mit</strong> GNUplot (und Co.)<br />

erstes Beispiel noch einmal (Kleiner Datensatz)<br />

Rate / s −1<br />

300<br />

200<br />

100<br />

100<br />

0<br />

measured measured<br />

data<br />

external program + <strong>pgfplots</strong><br />

external program + GNUplot<br />

everything external GNUplot p<br />

everything <strong>pgfplots</strong><br />

external p<br />

everything<br />

Concentration everything / mm<br />

0 100 200 30<br />

0<br />

0 100 200 300 400<br />

Concentration / mmol dm −3<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 16


<strong>Diagramme</strong> exportieren<br />

nach PDF<br />

1 \usetikzlibrary{<strong>pgfplots</strong>.external}<br />

\tikzexternalize<br />

nach EPS<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 17


<strong>Diagramme</strong> exportieren<br />

nach PDF<br />

1 \usetikzlibrary{<strong>pgfplots</strong>.external}<br />

\tikzexternalize<br />

nach EPS<br />

1 \tikzset{external/system call = {latex \tikzexternalcheckshellescape<br />

-halt-on-error -interaction=batchmode -jobname "\image" "\texsource";<br />

dvips -o "\image".ps "\image".dvi}}<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 17


Zusammenfassung<br />

<strong>pgfplots</strong> ist ein mächtiges Paket zum Erstellen von <strong>Diagramme</strong>n<br />

Die <strong>Diagramme</strong> sind<br />

– verschiedensten Typs (Linien, Balken, 2D, 3D, Dreieck)<br />

– hoher Qualität<br />

– konsistent zum restlichen Dokument<br />

– leicht anpassbar im Stil<br />

Keine Drittsoftware nötig<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 18


Literatur<br />

J. Wright<br />

Plotting experimental data using <strong>pgfplots</strong><br />

TUGboat 31:1, 2010, p. 50<br />

https:<br />

//www.tug.org/members/TUGboat/tb31-1/tb97wright-<strong>pgfplots</strong>.pdf<br />

Chr. Feuersänger<br />

<strong>pgfplots</strong> manual<br />

http://<strong>pgfplots</strong>.sourceforge.net/<strong>pgfplots</strong>.pdf<br />

http://<strong>pgfplots</strong>.sourceforge.net/<strong>pgfplots</strong>table.pdf<br />

T. Tantau<br />

pgf / TikZ manual<br />

http://sourceforge.net/projects/pgf<br />

Stefan Pinnow <strong>Diagramme</strong> <strong>erstellen</strong> <strong>mit</strong> <strong>pgfplots</strong><br />

ICVT 19


1<br />

0.5<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8 1 0<br />

1<br />

0.5<br />

0.5<br />

0<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0 1<br />

0.5<br />

9<br />

7<br />

5<br />

3<br />

1<br />

−1<br />

−1<br />

1<br />

3<br />

5<br />

l2<br />

7<br />

9<br />

l3<br />

L2 Error<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

7<br />

9<br />

1<br />

φxφy<br />

φx<br />

φy<br />

0<br />

−1<br />

1<br />

3<br />

5<br />

l1<br />

d = 2<br />

d = 3<br />

d = 4<br />

d = 5<br />

d = 6<br />

101 102 103 104 105 106 Degrees of freedom<br />

25<br />

20<br />

15<br />

10<br />

5<br />

0 10 20 30<br />

120<br />

115<br />

110<br />

105<br />

100<br />

−4 −2 0 2 4<br />

1<br />

0.5<br />

0<br />

0<br />

3,000<br />

2,000<br />

1,000<br />

0<br />

−1,000<br />

−2,000<br />

−3,000<br />

0.5<br />

1<br />

1.5<br />

2 0<br />

0.5<br />

model<br />

estimate<br />

−6 −4 −2 0 2 4 6<br />

1<br />

200<br />

150<br />

100<br />

Population<br />

50<br />

0<br />

0 2 4 6 8 10 12 14 16<br />

7<br />

6<br />

5<br />

4<br />

3<br />

1<br />

10<br />

− 6<br />

10<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

1<br />

1min load nodes cpus processes<br />

·10 7<br />

5<br />

3.8<br />

4.5<br />

4.2 4.3<br />

4<br />

3.3<br />

1930 1940 1950 1960 1970<br />

Far Near<br />

0 0.2 0.4 0.6 0.8<br />

5<br />

Class 1<br />

Class 2<br />

Class 3<br />

Line<br />

7<br />

6.5<br />

f(x, y) = x · y<br />

1<br />

Using Coordinate Filters to fix z = 1.4<br />

1<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

x<br />

1 0<br />

0.5<br />

y<br />

150<br />

100<br />

50<br />

0<br />

−50<br />

−100<br />

−150<br />

−6 −4 −2 0 2 4 6<br />

5<br />

− 3<br />

2π −π/2 π/2 3<br />

2π 10<br />

0<br />

−10<br />

−4<br />

−2<br />

0<br />

−5<br />

2<br />

tan(x)<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

4<br />

2<br />

0<br />

−2<br />

4 −4<br />

0

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!