I'm trying to construct a grouped bar chart and have three questions I can't seem to find the answer to:
-
How do I modify the spacings between the groups? Or at least make sure that no bars are outside the chart?
-
How do I remove the spacing between bars in a group?
-
How do I in the legend add a single space between each symbol and description?
\documentclass[12pt,a4paper,onecolumn, openright]{report}
\usepackage{xcolor}
\usepackage{pgfplots}
\usepackage{tikz}
% Define bar chart colors
%
\definecolor{bblue}{HTML}{4F81BD}
\definecolor{rred}{HTML}{C0504D}
\definecolor{ggreen}{HTML}{9BBB59}
\definecolor{ppurple}{HTML}{9F4C7C}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width = 0.85*\textwidth,
height = 8cm,
major x tick style = transparent,
ybar,
bar width=14pt,
ymajorgrids = true,
ylabel = {Run time speed},
symbolic x coords={EgyptHD,Hover,Navi},
xtick = data,
scaled y ticks = false,
]
\addplot[style={bblue,fill=bblue,mark=none}]
coordinates {(EgyptHD, 1.0) (Hover,1.0) (Navi,1.0)};
\addplot[style={rred,fill=rred,mark=none}]
coordinates {(EgyptHD,1.123) (Hover,0.85) (Navi,1.09)};
\addplot[style={ggreen,fill=ggreen,mark=none}]
coordinates {(EgyptHD,0.92) (Hover,0.56) (Navi,0.95)};
\addplot[style={ppurple,fill=ppurple,mark=none}]
coordinates {(EgyptHD,0.74) (Hover,1.07) (Navi,1.23)};
\legend{No vectorization,TreeScore $>2$,TreeScore $>3$,TreeScore $>4$}
\end{axis}
\end{tikzpicture}
\end{document}
Best Answer
enlarge x limits=0.25
(which increases the axis range by 25% compared to the data range).ybar=0pt
instead of justybar
. Note that this will lead to slight overlaps between the bars due to their outlines. To avoid this, you could either setybar=2*\pgflinewidth
, or disable drawing the bar outlines by settingdraw opacity=0
in the plot options.legend cell align=left, legend style={ column sep=1ex }
(thanks, Qrrbrbirlbel!).