我需要你幫忙畫下圖。我認為它被稱為堆疊條形圖。
答案1
這種類型的圖表很容易用該pgfplots
套件產生。請參閱下面的範例。有關ybar stacked
圖表的更多詳細信息,請參閱第 77 頁pgfplots 手冊。
您還應該考慮將ybar stacked
圖表轉換為xbar stacked
圖表(請參閱第 78 頁)pgfplots 手冊);這些往往比較容易解析。
編輯: 我已經無恥地適應了Jake的回答非常詳細到堆積 ybar 圖中座標附近的中心節點在欄中新增值:
\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}