Ich hatte im Beitrag »Schicke Grafiken in LaTeX mit pgfplots (1)« noch ein zweites Beispiel angekündigt. Diesmal zeige ich wie man mit pgfplots eine Grafik mit horizontalen Balken baut. Als Grundlage dient die Grafik aus einem Paper mit dem Titel »Concrete-based constrained layer damping«. Das Original sieht bereits im Original verpixelt aus:
Mit PGF bzw. besser gesagt mit TikZ lässt sich das nachbauen. Box, Anstriche, Beschriftungen und Balken müssen aber alle komplett von Hand erstellt werden.
begin{tikzpicture}[xcomb,thick] % die balken draw[color=gray,line width=10pt] plot coordinates{(0.75,0.5) (1.125,1) (7.5,1.5) (5.4,2) (6,2.5) (0.3,3) (0.05,3.5)}; % box (rechteck) außen rum draw (0,0) rectangle (9,4); % die achsenbeschriftung links foreach y/ytext in {0.5/mild steel, 1/cast iron, 1.5/granite, 2/polymer concrete, 2.5/lead, 3/6063 aluminium, 3.5/alumina} draw (-2pt,y cm) node[anchor=east] {footnotesizeytext}; % anstriche für die achse unten draw (0,0) -- (-2pt,0); foreach x in {0,0.75,...,9} draw (x cm,0) -- (x cm,-2pt); % achsenbeschriftung unten foreach x/xtext in {0/0.000, 1.5/0.001, 3/0.002, 4.5/0.003, 6/0.004, 7.5/0.005, 9/0.006} draw (x cm,-2pt) node[below] {footnotesizextext}; end{tikzpicture}
Das Ergebnis ist schon recht ansprechend, es werden die LaTeX-Schriften verwendet und es ist eine saubere Vektorgrafik:
Mit pgfplots muss man nicht alle Einzelheiten selbst nachbauen sondern definiert im Grunde nur noch Labels und Werte.
begin{tikzpicture} begin{axis}[ xbar, width=10cm, height=6cm, ytick={1,...,7}, yticklabels={% mild steel, cast iron, granite, polymer concrete, lead, 6063 aluminium, alumina}, xmin=0, xmax=0.006 ] addplot[draw=darkblue,fill=blue!50!white,semithick] coordinates { (4.5e-4, 1) (7.5e-4, 2) (5e-3, 3) (3.6e-3, 4) (4e-3, 5) (2e-4, 6) (3e-5, 7) }; end{axis} end{tikzpicture}
Da ist erstens der Quelltext übersichtlich und verständlich und das Ergebnis überzeugt ebenso:
Mehr Text gibt’s dann ein ander Mal wieder, ich denke die Code-Beispiele und Bildchen sprechen für sich. ;-)