Balken einer Gruppe nebeneinander platzieren (Balkendiagr.)

Tabellen und Grafiken erstellen und anordnen


Mr.Goonie
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: Mo 6. Jul 2015, 08:09

Balken einer Gruppe nebeneinander platzieren (Balkendiagr.)

Beitrag 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ß

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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
Dateianhänge
gl_balkendiagramm.png
gl_balkendiagramm.png (7.29 KiB) 1399 mal betrachtet

Mr.Goonie
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: Mo 6. Jul 2015, 08:09

Beitrag 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.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Option bar width=... für die axis Umgebung. Die voreingestellte Breite ist 10pt.

Gruß
Elke

Mr.Goonie
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: Mo 6. Jul 2015, 08:09

Beitrag von Mr.Goonie »

super, vielen Dank!

Gruß

Antworten