需要協助繪製以下堆積長條圖

需要協助繪製以下堆積長條圖

我需要你幫忙畫下圖。我認為它被稱為堆疊條形圖。 在此輸入影像描述

答案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}

相關內容