Quero sua ajuda para desenhar a figura a seguir. Acho que é chamado de gráfico de barras empilhadas.
Responder1
Esse tipo de gráfico é fácil de produzir com o pgfplots
pacote. Veja abaixo um exemplo. Para obter mais detalhes sobre ybar stacked
gráficos, consulte a página 77 domanual de pgfplots.
Você também deve considerar transformar seu ybar stacked
gráfico em um xbar stacked
gráfico (consulte a página 78 domanual de pgfplots); esses tendem a ser mais fáceis de analisar.
EDITAR: Eu me adaptei descaradamenteA resposta muito detalhada de JakeparaCentralize os nós próximos às coordenadas em um gráfico ybar empilhadopara adicionar valores nas barras:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotstableread{
1 15 12 03 24 16 19
2 15 12 03 24 16 19
3 15 12 03 24 16 19
4 15 12 03 24 16 19
5 15 12 03 24 16 19
6 15 12 03 24 16 19
}\datatable
\makeatletter
\pgfplotsset{
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}
},
nodes near coords vertically centered/.style={
every node near coord/.append style={
/pgfplots/calculate offset,
yshift=-\testmacro
},
nodes near coords align=center
}
}
\makeatother
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar stacked,%
bar width=15pt,%
legend style={%
at={(0,0)},%
anchor=west,%
at={(axis description cs:1.05,+0.5)}},%
reverse legend,%
xtick={1,2,...,6},%
xticklabels={1,2,3,4,5,6},%
enlarge x limits=0.1,%
enlarge y limits=false,%
ymin=0,%
ymax=100.01,%
ytick={0,10,...,100},%
yticklabels={0\%,10\%,20\%,30\%,40\%,50\%,60\%,70\%,80\%,90\%,100\%},%
xlabel={\textbf{Company}},%
ylabel={\textbf{\% Distribution of efforts}},%
point meta=explicit,
nodes near coords={\pgfmathprintnumber[fixed zerofill,precision=1]{\pgfplotspointmeta}
},
every node near coord/.style={%
check for zero/.code={ %
\pgfmathfloatifflags{\pgfplotspointmeta}{0}{%
\pgfkeys{/tikz/coordinate}%
}{}%
},%
check for zero,%
fill=white,%
fill opacity=0.75,%
text opacity=1,%
font=\scriptsize,%
inner ysep=0.5pt,%
},%
nodes near coords vertically centered,%
]
\addplot table [y=1, meta=1] \datatable;
\addlegendentry{A}
\addplot table [y=2, meta=2] \datatable;
\addlegendentry{B}
\addplot table [y=3, meta=3] \datatable;
\addlegendentry{C}
\addplot table [y=4, meta=4] \datatable;
\addlegendentry{D}
\addplot table [y=5, meta=5] \datatable;
\addlegendentry{E}
\addplot table [y=6, meta=6] \datatable;
\addlegendentry{F}
\end{axis}
\end{tikzpicture}
\end{document}