Diagramme erstellen mit pgfplots
Diagramme erstellen mit pgfplots
Diagramme erstellen mit pgfplots
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