Seite 1 von 1

Balken einer Gruppe nebeneinander platzieren (Balkendiagr.)

Verfasst: Mi 12. Aug 2015, 14:53
von Mr.Goonie
Hallo zusammen,

ich habe ein Balkendiagramm mit mehreren Gruppen (hier sechs). Die Balken/Werte einer Gruppe sollen allerdings nicht gestapelt werden sondern nebeneinander liegen. Gibt es da eine Option? Wichtig ist, dass die individuelle Farbbelegung erhalten bleibt.
\documentclass[a4paper]{report}

\usepackage[utf8]{inputenc} 	
\usepackage[T1]{fontenc} 		
\usepackage[ngerman]{babel} 	

\usepackage{float} 				
\usepackage{floatflt} 			
\usepackage{graphicx} 			
\usepackage{xcolor}				

\usepackage{pgfplots}			
\usepackage{tikz}				
\pgfplotsset{compat=1.12}	


\begin{document}

\begin{figure}[!h]
	\begin{tikzpicture} 
	\begin{axis}[width=\textwidth, 
	xlabel={x}, ylabel={$y$},
	symbolic x coords={Rang 1, Rang 2, Rang 3, Rang 4, Rang 5, Rang 6}
	]
	
	\definecolor{r1}{RGB}{167,51,51};
	\definecolor{r2}{RGB}{211,153,153};
	\definecolor{r3}{RGB}{0,15,150};

	
	\addplot+[ybar, color=black, fill={r1}, mark=none] plot coordinates {(Rang 1,29)};
	\addplot+[ybar, color=black, fill={r3}, mark=none] plot coordinates {(Rang 1,10)};

	\addplot+[ybar, color=black, fill={r1}, mark=none] plot coordinates {(Rang 2,10)};
	\addplot+[ybar, color=black, fill={r2}, mark=none] plot coordinates {(Rang 2,3)};
	
	\addplot+[ybar, color=black, fill={r3}, mark=none] plot coordinates {(Rang 2,20)};
	\addplot+[ybar, color=black, fill={r2}, mark=none] plot coordinates {(Rang 2,12)};
	
	\addplot+[ybar, color=black, fill={r3}, mark=none] plot coordinates {(Rang 3,20)};
	\addplot+[ybar, color=black, fill={r1}, mark=none] plot coordinates {(Rang 3,12)};
	
	\addplot+[ybar, color=black, fill={r1}, mark=none] plot coordinates {(Rang 4,20)};
	\addplot+[ybar, color=black, fill={r2}, mark=none] plot coordinates {(Rang 4,12)};
	
	\addplot+[ybar, color=black, fill={r2}, mark=none] plot coordinates {(Rang 5,20)};
	\addplot+[ybar, color=black, fill={r3}, mark=none] plot coordinates {(Rang 5,12)};
	
	\addplot+[ybar, color=black, fill={r1}, mark=none] plot coordinates {(Rang 6,20)};
	\addplot+[ybar, color=black, fill={r2}, mark=none] plot coordinates {(Rang 6,12)};

	
	\end{axis} 
	\end{tikzpicture}

\end{figure}
\end{document}
Vielen Dank vorab und Gruß

Verfasst: Mi 12. Aug 2015, 20:00
von esdd
Mir ist jetzt überhaupt nicht klar, was Du erreichen möchtest. Normal würde man die Balken mit gleicher Farbe mit einem einzigen \addplot einfügen und die Option ybar bei der axis Umgebung setzen. Mich irritiert aber, dass für die Farbe r2 für Rang 2 zwei Werte angegeben sind. Kann also auch sein, dass Du ganz etwas anderes möchtest.
\documentclass[a4paper]{report}
\usepackage{pgfplots}         
\pgfplotsset{compat=1.12}   
\begin{document}
\begin{tikzpicture} 
\begin{axis}[width=\textwidth, 
  xlabel={x}, ylabel={$y$},
  symbolic x coords={Rang 1, Rang 2, Rang 3, Rang 4, Rang 5, Rang 6},
  ybar
]

\definecolor{r1}{RGB}{167,51,51};
\definecolor{r2}{RGB}{211,153,153};
\definecolor{r3}{RGB}{0,15,150};

\addplot[black, fill={r1}] plot coordinates {
 (Rang 1,29) (Rang 2,10) (Rang 3,12) (Rang 4,20) (Rang 6,20)};
\addplot[black, fill={r2}] plot coordinates {
(Rang 2,3) (Rang 4,12) (Rang 5,20) (Rang 6,12)};
\addplot[black, fill={r3}] plot coordinates {
(Rang 1,10) (Rang 2,20) (Rang 3,20) (Rang 5,12)};

%\addplot[black, fill={r2}] plot coordinates {(Rang 2,12)};
\end{axis} 
\end{tikzpicture}
\end{document}

Bild

In jedem Fall kannst das + bei den \addplot Befehlen weg lassen, da Du keine cycling list nutzen möchtest.

Gruß
Elke

Verfasst: Do 13. Aug 2015, 08:20
von Mr.Goonie
Hallo Elke,

perfekt. Genauso meinte ich das ;)

Kann man hier noch die Balkenbreite verringern? Mit meinem originalen Datensatz klappt das nämlich aus platzgründen sonst leider nicht.

Verfasst: Do 13. Aug 2015, 10:04
von esdd
Option bar width=... für die axis Umgebung. Die voreingestellte Breite ist 10pt.

Gruß
Elke

Verfasst: Do 13. Aug 2015, 11:39
von Mr.Goonie
super, vielen Dank!

Gruß