Diagramme sind ein wichtiges Werkzeug zur anschaulichen Darstellung und zum Vergleich von Messergebnissen oder Simulationsdaten, nicht nur in den Ingenieurwissenschaften. In diesem Foliensatz für einen studentischen Workshop wird auf typische Fehler bei der Erstellung von Diagrammen eingegangen, Die Nachteile der so erstellten Diagramme werden ausführlich diskutiert. Anschließend wird auf Verbesserungsideen eingegangen. Die dabei benutzten Softwarewerkzeuge sind MATLAB, Microsoft Excel und LaTeX mit dem pgfplots-Paket.
Fünf Schritte, um ein richtig schlechtes Diagramm zu erstellen ... und wie man es besser macht
1. Fünf Schritte, um ein richtig schlechtes
Diagramm zu erstellen . . .
. . . und wie man es besser macht
Mathias Magdowski
Lehrstuhl für Elektromagnetische Verträglichkeit
Lizenz: cb CC BY 4.0 (Namensnennung, Weitergabe unter gleichen Bedingungen)
2. Beispieldaten How not to How to Nachtrag
Gliederung
Beispieldatensatz
Wie man es nicht macht
Wie man es besser macht
Was man nachträglich trotzdem noch versauen kann
2
18. Beispieldaten How not to How to Nachtrag
Was ist alles schiefgelaufen?
Inhaltliche Kritik:
I Anzahl der Datenpunkte sehr gering
I Spline-Interpolation maskiert diese Tatsache
I fehlende Markierung der Datenpunkte, keine Einheiten
Formale Kritik:
I Rastergrafik, verlustbehaftete Kompression
I fehlende bzw. nachträglich hinzugefügte
Achsenbeschriftung
I keine sinnvolle Anpassung der Schriftart, Schriftgröße,
Farbe, Liniendicke, Gitternetzlinien, . . .
18
22. Beispieldaten How not to How to Nachtrag
Kompression
(a) 80 % Qualität (b) 60 % Qualität (c) 40 % Qualität (d) 20 % Qualität
23
23. Beispieldaten How not to How to Nachtrag
Kompression
(a) 80 % Qualität (b) 60 % Qualität (c) 40 % Qualität (d) 20 % Qualität
→ verlustfreie PNG-Kompression für Bilder mit wenigen Farben
23
25. Beispieldaten How not to How to Nachtrag
Umwandlung
Vektorgrafik → Rastergrafik:
Rasterung
26
26. Beispieldaten How not to How to Nachtrag
Umwandlung
Vektorgrafik → Rastergrafik:
Rasterung
Rastergrafik → Vektorgrafik:
I Vektorisierung
26
27. Beispieldaten How not to How to Nachtrag
Umwandlung
Vektorgrafik → Rastergrafik:
Rasterung
Rastergrafik → Vektorgrafik:
I Vektorisierung
I z. B. mit Potrace http://potrace.sourceforge.net/
(a) Originalbild (b) Ausgabe von Potrace
26
28. Beispieldaten How not to How to Nachtrag
Schritt 1
set(gcf,’PaperSize’,[12 9])
set(gcf,’PaperPosition’,[0 0 12 9])
set(gca,’Position’,[0.15,0.17,0.79,0.80])
print(’-dpdf’,[’datei.pdf’])
2000 3000 4000 5000 6000 7000 8000
0
0.05
0.1
0.15
0.2
0.25
0.3
28
29. Beispieldaten How not to How to Nachtrag
Schritt 2
xlabel(’Frequenz, f in Hz’)
ylabel(’Strom, I in A’)
2000 3000 4000 5000 6000 7000 8000
0
0.05
0.1
0.15
0.2
0.25
0.3
Frequenz, f in Hz
Strom,
I
in
A
29
30. Beispieldaten How not to How to Nachtrag
Schritt 2
grid on
2000 3000 4000 5000 6000 7000 8000
0
0.05
0.1
0.15
0.2
0.25
0.3
Frequenz, f in Hz
Strom,
I
in
A
30
31. Beispieldaten How not to How to Nachtrag
Schritt 2
set(get(gca,’Children’),’LineWidth’,2)
2000 3000 4000 5000 6000 7000 8000
0
0.05
0.1
0.15
0.2
0.25
0.3
Frequenz, f in Hz
Strom,
I
in
A
31
32. Beispieldaten How not to How to Nachtrag
Schritt 2
set(gca,’FontSize’,16)
set(get(gca,’XLabel’),’FontSize’,20)
set(get(gca,’YLabel’),’FontSize’,20)
2000 4000 6000 8000
0
0.05
0.1
0.15
0.2
0.25
0.3
Frequenz, f in Hz
Strom,
I
in
A
32
33. Beispieldaten How not to How to Nachtrag
Schritt 2
plot(f*1e-3,abs(I)*1e3)
xlabel(’Frequenz, f in kHz’)
ylabel(’Strom, I in mA’)
2 3 4 5 6 7 8
0
50
100
150
200
250
300
Frequenz, f in kHz
Strom,
I
in
mA
33
34. Beispieldaten How not to How to Nachtrag
Schritt 2
set(get(gca,’Children’),’Marker’,’o’)
2 3 4 5 6 7 8
0
50
100
150
200
250
300
Frequenz, f in kHz
Strom,
I
in
mA
34
35. Beispieldaten How not to How to Nachtrag
Schritt 3
Messung an 601 Frequenzpunkten in Schritten von 10 Hz
2 3 4 5 6 7 8
0
0.2
0.4
0.6
0.8
1
1.2
Frequenz, f in kHz
Strom,
I
in
A
36
36. Beispieldaten How not to How to Nachtrag
Schritt 3
2 3 4 5 6 7 8
0
0.2
0.4
0.6
0.8
1
1.2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
Abbildung: Gemessener Effektivwert des Stromes an einem passiven
Zweipol in Abhängigkeit der Frequenz für unterschiedliche Anzahlen
von Datenpunkten
37
37. Beispieldaten How not to How to Nachtrag
Strom
Frequenz
Abbildung: Diagramm der Messdaten
38
38. Beispieldaten How not to How to Nachtrag
The Window on the Other Side
So what do we see in the
window on the other side?
Looks like a naked woman –
wait a minute. It’s just the
outline of other things in the
room, like the drape. There is
lingerie and panties hanging
in front of the window and
her legs are the panties, her
hair is a plant on a cupboard.
And yes, unfortunately, that’s
just a wineglass there.
39
42. Beispieldaten How not to How to Nachtrag
Ideen?
Murphys Gesetz:
Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu
erledigen, und eine davon in einer Katastrophe en-
det oder irgendwelche unerwünschten Konsequenzen
nach sich zieht, dann wird es jemand genau so ma-
chen.
42
43. Beispieldaten How not to How to Nachtrag
2 3 4 5 6 7 8
0
0.2
0.4
0.6
0.8
1
1.2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
(a) . . .
2 3 4 5 6 7 8
0
0.2
0.4
0.6
0.8
1
1.2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
(b) . . .
2 3 4 5 6 7 8
0
0.2
0.4
0.6
0.8
1
1.2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
(c) . . .
2 3 4 5 6 7 8
0
0.2
0.4
0.6
0.8
1
1.2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
(d) . . .
43
44. Beispieldaten How not to How to Nachtrag
I unnützer Stichpunkt 1
I unnützer Stichpunkt 2
I unnützer Stichpunkt 3
I unnützer Stichpunkt 4
2 3 4 5 6 7 8
0
0.2
0.4
0.6
0.8
1
1.2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
44
45. Beispieldaten How not to How to Nachtrag
2 3 4 5 6 7 8
0
0.2
0.4
0.6
0.8
1
1.2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
Figure: Measured root-mean-square value of the current at a passive
two-terminal circuit as a function of the frequency for different
numbers of samples.
45
46. Beispieldaten How not to How to Nachtrag
2 3 4 5 6 7 8
0
0.2
0.4
0.6
0.8
1
1.2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
Abbildung: Gemessener Effektivwert i des Stromes an einem
passiven Zweipol in Abhängigkeit der Frequenz F für unterschiedliche
Anzahlen von Datenpunkten
46
48. Beispieldaten How not to How to Nachtrag
begin{tikzpicture}
begin{axis}[
xlabel={Frequenz, $f$ in si{kilohertz}},
ylabel={Strom, $I$ in si{ampere}},
xmin=2,xmax=8,
ymin=0,ymax=1.2,
]
addplot table[header=false, ...
addlegendentry{601 Punkte};
addplot+[solid,only marks,mark=o] coordinates ...
addlegendentry{7 Punkte};
end{axis}
end{tikzpicture}
48
49. Beispieldaten How not to How to Nachtrag
2 3 4 5 6 7 8
0
0,2
0,4
0,6
0,8
1
1,2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
49
50. Beispieldaten How not to How to Nachtrag
width=0.8textwidth
2 2,5 3 3,5 4 4,5 5 5,5 6 6,5 7 7,5 8
0
0,2
0,4
0,6
0,8
1
1,2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
50
51. Beispieldaten How not to How to Nachtrag
xlabel={Frequency, $f$ in si{kilohertz}},
ylabel={Current, $I$ in si{ampere}},
...
2 2,5 3 3,5 4 4,5 5 5,5 6 6,5 7 7,5 8
0
0,2
0,4
0,6
0,8
1
1,2
Frequency, f in kHz
Current,
I
in
A
601 Points
7 Points
51
52. Beispieldaten How not to How to Nachtrag
rmfamily
pgfplotsset{cycle list name=linestyles}
2 2,5 3 3,5 4 4,5 5 5,5 6 6,5 7 7,5 8
0
0,2
0,4
0,6
0,8
1
1,2
Frequenz, f in kHz
Strom,
I
in
A
601 Punkte
7 Punkte
Abbildung: Trennung von Inhalt und Form in L
A
TEX
53