2 questions:
1) How do I move my data labels to the center of my bars?
2) How do I make the labels be purely data labels, and not cumulative values? eg I want the red bar labels to be the value of that bar not red+blue.

\documentclass[tikz,border=12pt]{standalone}
\usepackage{pgfplots}
\usepackage{subfig}
\usepackage{tabularx}
\usepackage{verbatim}
\pgfplotsset{compat=newest}
%\usepgfplotslibrary{external}
%\tikzexternalize
%\documentclass{article}
%\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{calc,
arrows,decorations.pathmorphing,
backgrounds,fit,positioning,shapes.symbols,chains}
\usetikzlibrary{decorations.pathreplacing}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
%
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar stacked,
legend style={at={(0.5,-0.50)},
anchor=north,legend columns=-1},
ylabel={Probability},
symbolic x coords={{Direct Care}, Housekeeping, Mealtimes, {Medication Round},
Miscellaneous,{Personal Care}},
xtick=data,
ymax=1,
x tick label style={rotate=45,anchor=east},
every node near coord/.style={
check for zero/.code={
\pgfkeys{/pgf/fpu=true}
\pgfmathparse{\pgfplotspointmeta-.1}
\pgfmathfloatifflags{\pgfmathresult}{-}{
\pgfkeys{/tikz/coordinate}
}{}
\pgfkeys{/pgf/fpu=false}
}, check for zero, yshift=-5pt, font=\footnotesize},
nodes near coords={\pgfmathprintnumber[precision=2]{\pgfplotspointmeta}},
nodes near coords align={center}
]
\addplot+[ybar,bar width=20pt] plot coordinates {({Direct Care},0.258883249)
({Housekeeping},0.176470588)
({Mealtimes},0.19047619)
({Medication Round},0.207207207)
({Miscellaneous},0.222222222)
({Personal Care},0.615384615)
};
\addplot+[ybar,bar width=20pt] plot coordinates {({Direct Care},0.015228426)
({Housekeeping},0.235294118)
({Mealtimes},0)
({Medication Round},0.027027027)
({Miscellaneous},0)
({Personal Care},0.153846154)
};
\addplot+[ybar,bar width=20pt] plot coordinates {({Direct Care},0.152284264)
({Housekeeping},0.058823529)
({Mealtimes},0.333333333)
({Medication Round},0.351351351)
({Miscellaneous},0.180555556)
({Personal Care},0.153846154)
};
\legend{{Handwash only},{Gloves only},{Alcohol rub only}}
\end{axis}
\end{tikzpicture}
\end{document}
EDIT
This code centers the nodes, but makes my data points 10$^3$. How do I get rid of this?
calculate offset/.code={
\pgfkeys{/pgf/fpu=true,/pgf/fpu/output format=fixed}
\pgfmathsetmacro\testmacro{(\pgfplotspointmeta*10^\pgfplots@data@scale@trafo@EXPONENT@y)/2*\pgfplots@y@veclength)}
\pgfkeys{/pgf/fpu=false}
},
every node near coord/.style={
/pgfplots/calculate offset,
yshift=-\testmacro
},
nodes near coords,
nodes near coords align=center
My second question isn't answered in the link provided. I'd appreciate any hints about this
meta=<column name>in your\addplotcommands, otherwise PGFplots will use theyvalue, which is the sum of the individual values.In your case, you'll need to use\addplot ... table ...instead of\addplot coordinatesto be able to use themeta` functionality. I think it's best to open a new question for this, since it's a different problem from the issue of moving the labels to the center of the bars. By only having one question per post, it's much easier for others to find later on – Jake May 23 '13 at 14:39