양수 및 음수 누적 막대가 모두 포함된 막대 차트를 만들려고 합니다. 그러나 내 네거티브 바가 나타나지 않거나 포지티브 바 뒤에 숨겨져 있습니다. 양수 막대를 쌓고 그 아래에 음수 막대를 표시하려면 설정을 어떻게 변경해야 합니까?
MWE는 다음과 같습니다.
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ybar stacked,xtick=\empty,ytick=\empty]
\addplot+[fill=red,draw=black] coordinates {(0,1) (.5,1.5) (1,2)};
\addplot+[fill=blue,draw=black] coordinates {(0,.5) (.5,1) (1,.5)};
\addplot+[fill=yellow,draw=black] coordinates {(0,-.5) (.5,-1) (1,-.5)};
\legend{Income1,Income2,Investment}
\end{axis}
\end{tikzpicture}
\end{document}
다음을 생성합니다.
답변1
나는 그것을 유지관리자에게 보고할 것이다. 정말 이상한 것 같습니다. 쌓지 않으면 올바른 결과를 얻습니다.
% arara: pdflatex
\documentclass[tikz,border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ybar,xtick=\empty,ytick=\empty,legend cell align=left, legend style={legend pos=north west}]
\addplot+[fill=yellow,draw=black] coordinates {(0,-.5) (.5,-1) (1,-.5)};
\addplot+[fill=red,draw=black] coordinates {(0,1) (.5,1.5) (1,2)};
\addplot+[fill=blue,draw=black] coordinates {(0,.5) (.5,1) (1,.5)};
\legend{Income1,Income2,Investment}
\end{axis}
\end{tikzpicture}
\end{document}
답변2
그룹 플롯과 일부 조작을 사용하여 문제를 해결했습니다.
암호:
\documentclass[]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[group style={group size= 1 by 2},height=5cm,width=6.4cm,xtick=\empty]%[ybar stacked,xtick=\empty,]%ytick=\empty]
\nextgroupplot[ybar stacked,xtick=\empty,ymin=0,ymax=3,legend style = {at={(1.05, 0.5)}, anchor = west, legend columns =1, draw=none, area legend}, ymajorgrids = true,]%ytick=\empty]
\addplot[ybar stacked,fill=red,draw=black]
coordinates {(0,1) (.5,1.5) (1,2)};
\addplot[ybar stacked,fill=blue,draw=black]
coordinates {(0,.5) (.5,1) (1,.5)};
\addlegendentry{Income1}
\addlegendentry{Income2}
\nextgroupplot[yshift=1cm,ymin=-1.5,ymax=0,height=3.2cm,ytick=\empty,extra y ticks={-1},legend style = {at={(1.05, 1.65)}, anchor = west, legend columns =1, draw=none, area legend},ymajorgrids = true,]
\addplot[ybar stacked,fill=yellow,draw=black] coordinates {(0,-.5) (.5,-1) (1,-.5)};
\addlegendentry{Investment}
\end{groupplot}
\end{tikzpicture}
\end{document}
다음을 생성합니다.