Ich habe folgenden funktionierenden Code für ein Diagramm: Open in Online-Editor
\documentclass[12pt,a4paper]{report} \usepackage[utf8]{inputenc} \usepackage{pgfplots} \pgfplotsset{compat=newest} \usetikzlibrary{patterns} \pgfkeys{/pgf/number format/.cd ,use comma ,set thousands separator={ }} \pgfplotsset{ every axis label/.append style={font=\scriptsize}, every tick label/.append style={font=\scriptsize}} % globale Einstellungen. \pgfplotsset{scaled y ticks=false} %keine wiss. notation bei achsen \begin{document} % nur eine Säule anzeigen \pgfplotsset{/pgfplots/ybar legend/.style={ /pgfplots/legend image code/.code={\draw[##1,/tikz/.cd,bar width=3pt,yshift=-0.2em,bar shift=0pt] plot coordinates {(0cm,0.8em) };}, }} begin{figure}[h!] \centering \begin{tikzpicture} \begin{axis}[ width=\textwidth, height=8cm, ymax = 70000, legend style={at={(0.5,-0.5)}, anchor=north,legend columns=-1, draw=none}, ybar, xtick = {1,2,3,4,5,6,7,8,9,10,11,12,13,14}, x tick label style={rotate=90}, %Achsenbeschriftung drehen grid, grid style={dashed}, ] \addplot[pattern = north west lines, pattern color = blue] coordinates { (1,1069) (2, 486) (3, 314) (4, 671) (5, 2566) (6, 1324) (7, 912) (8, 4518) (9, 2259) (10, 1539) (11, 1086) (12, 2060) (13, 1539) (14, 1086)}; \addplot[pattern = north west lines, pattern color = gray] coordinates { (1,5051) (2, 2268) (3, 1420) (4, 1033) (5, 14948) (6, 8000) (7, 5464) (8, 45249) (9, 25189) (10, 17212) (11, 12225) (12, 54645) (13, 41152) (14, 29155)}; \draw [black,thick] (0.8,10000) --(4.2,10000) node[pos = 0.5,above] {Größe 1}; \draw [black,thick] (4.8,20000) --(7.2,20000) node[pos = 0.5,above] {Größe 2}; \draw [black,thick] (7.8,50000) --(11.2,50000) node[pos = 0.5,above] {Größe 3}; \draw [black,thick] (11.8,60000)--(14.2,60000) node[pos = 0.5,above] {Größe 4}; \legend{alt,neu} \end{axis} \end{tikzpicture} \end{figure} \end{document} Damit erhalte ich folgendes Diagramm: Anstatt mit Zahlen möchte ich die Normalerweise geht das ja dann über Open in Online-Editor
symbolic x coords={KBH1 150 A, KBH1 150 B, KBH1 150 C, KBH1 150 D, KBH1 250 B, KBH1 250 C, KBH1 250 D, KBH1 350 A, KBH1 350 B, KBH1 350 C, KBH1 350 D, KBH1 450 B, KBH1 450 C, KBH1 450 D}, xtick={KBH1 150 A, KBH1 150 B, KBH1 150 C, KBH1 150 D, KBH1 250 B, KBH1 250 C, KBH1 250 D, KBH1 350 A, KBH1 350 B, KBH1 350 C, KBH1 350 D, KBH1 450 B, KBH1 450 C, KBH1 450 D}, Nur dann bekomme ich logischerweise eine Fehlermeldung für Open in Online-Editor
\draw [black,thick] (KBH1 150 A,10000) --(KBH1 150 D,10000) node[pos = 0.5,above] {Größe 1}; Bekomme ich die Fehlermeldung: Open in Online-Editor
! Package PGF Math Error: Unknown function `KBH1' (in 'KBH1 150 A').See the PGF Math package documentation for explanation.Type H <return> for immediate help.... \end{axis} ! Package PGF Math Error: Unknown function `KBH1' (in 'KBH1 150 A').See the PGF Math package documentation for explanation.Type H <return> for immediate help.... \end{axis} Wie bekomme ich es also hin, dass ich ein Nachtrag: An den Leerzeichen in den |
Wenn die Artikelbezeichnungen nur an den Ticks stehen sollen, aber ansonsten die Koordinaten als Zahlen angegeben werden, dann kannst Du Open in Online-Editor
xtick = {1,...,14}, xticklabels={KBH1 150 A, KBH1 150 B, KBH1 150 C, KBH1 150 D, KBH1 250 B, KBH1 250 C, KBH1 250 D, KBH1 350 A, KBH1 350 B, KBH1 350 C, KBH1 350 D, KBH1 450 B, KBH1 450 C, KBH1 450 D}, nutzen. Code: Open in Online-Editor
\documentclass[12pt,a4paper]{report} \usepackage[utf8]{inputenc} \usepackage{pgfplots} \pgfplotsset{compat=newest} \usetikzlibrary{patterns} \pgfkeys{/pgf/number format/.cd ,use comma ,set thousands separator={ }} \pgfplotsset{% globale Einstellungen. label style={font=\scriptsize}, ticklabel style={font=\scriptsize}, scaled y ticks=false %keine wiss. notation bei achsen } \begin{document} % nur eine Säule anzeigen \pgfplotsset{/pgfplots/ybar legend/.style={ /pgfplots/legend image code/.code={ \draw[##1,/tikz/.cd,bar width=3pt,yshift=-0.2em,bar shift=0pt] plot coordinates {(0cm,0.8em) }; }, }} \begin{figure}[h!] \centering \begin{tikzpicture} \begin{axis}[ width=\textwidth, height=8cm, ymax = 70000, legend style={ at={([yshift=-\baselineskip]xticklabel cs:.5)},% <- changed anchor=north,legend columns=-1, draw=none}, ybar, bar width=8pt,% <- added: default is 10pt xtick = {1,...,14}, xticklabels={KBH1 150 A, KBH1 150 B, KBH1 150 C, KBH1 150 D, KBH1 250 B, KBH1 250 C, KBH1 250 D, KBH1 350 A, KBH1 350 B, KBH1 350 C, KBH1 350 D, KBH1 450 B, KBH1 450 C, KBH1 450 D}, x tick label style={rotate=90}, %Achsenbeschriftung drehen grid, grid style={dashed}, ] \addplot[pattern = north west lines, pattern color = blue] coordinates { (1,1069) (2, 486) (3, 314) (4, 671) (5, 2566) (6, 1324) (7, 912) (8, 4518) (9, 2259) (10, 1539) (11, 1086) (12, 2060) (13, 1539) (14, 1086)}; \addplot[pattern = north west lines, pattern color = gray] coordinates { (1,5051) (2, 2268) (3, 1420) (4, 1033) (5, 14948) (6, 8000) (7, 5464) (8, 45249) (9, 25189) (10, 17212) (11, 12225) (12, 54645) (13, 41152) (14, 29155)}; \draw [black,thick] (0.8,10000) --(4.2,10000) node[pos = 0.5,above] {Größe 1}; \draw [black,thick] (4.8,20000) --(7.2,20000) node[pos = 0.5,above] {Größe 2}; \draw [black,thick] (7.8,50000) --(11.2,50000) node[pos = 0.5,above] {Größe 3}; \draw [black,thick] (11.8,60000)--(14.2,60000) node[pos = 0.5,above] {Größe 4}; \legend{alt,neu} \end{axis} \end{tikzpicture} \end{figure} \end{document} Würden Open in Online-Editor
\draw [black,thick] (axis cs: KBH1 150 A,10000) --(axis cs: KBH1 150 D,10000)node[pos = 0.5,above] {Größe 1} ; beantwortet 25 Jun '16, 21:30 esdd Danke, dass klappt natürlich :) an 'xticklabels' habe ich gar nicht gedacht, obwohl dass auf der Hand liegt. Naja, manchmal sieht man den Wald vor lauter Bäumen nicht..
(26 Jun '16, 09:37)
MG812
1
@MG812: "Danke" geht bei uns mit einem Klick auf den Daumen hoch (kann jeder, der eine Frage oder Antwort gut/hilfreich findet) oder auch mit einem Klick auf den Haken (kann nur der Fragesteller für jeweils eine Antwort). Das hilft anderen Hilfesuchende bei der Orientierung. Gleichzeitig bekommt der Antwortende dafür automatisch Punkte (10 für den Daumen, 15 für den Haken). Zusätzlich Punkte vergeben ist dagegen eigentlich nur sinnvoll, wenn man eine ganz besondere Leistung zusätzlich auszeichnen will.
(26 Jun '16, 11:26)
saputello
|