带符号坐标的堆积条形图

带符号坐标的堆积条形图

我正在努力创建堆积条形图,但不太清楚为什么它不起作用。附上了一个最小的工作示例。

我有两个问题。a) 一个条形应该填充 0-30 的范围,第二个条形应该填充 0-70 的范围,我希望它们重叠。它似乎将值相加,这意味着它是 30+70,因此第二个条形延伸到 100。

b) 我定义了几个从 a 到 g 的条,但由于未知原因,a 和 b 被吞掉,并且绘图仅使用 c 到 g。

抱歉,我问了这些问题,但我花了一些时间将我的代码与堆叠条形图示例进行比较,但就是不明白我的问题出在哪里。有人知道问题出在哪里吗?

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots, pgfplotstable}    

\begin{document}

\begin{figure}
\begin{tikzpicture}
  \begin{axis}[
        xmin=60,  
        xmax=100,
        xbar stacked,
        xmajorgrids = true,
        bar width=1mm, 
        width=11.5cm,
        height=10cm, 
        xlabel={Accuracy \%},
        symbolic y coords={a,b,c,d,e,f,g},
        ytick=data
  ]


\addplot[fill=orange] coordinates {(50.5,a)(40.3,b)(30.0,c)(30.0,d)(30.0,e)(30.0,f)(30.0,g)};
\addplot[fill=black] coordinates {(70.7,a)(70.2,b)(70,c)(70,d)(70,e)(70,f)(70,g)};

\end{axis}
\end{tikzpicture}
\end{figure}

\end{document}

答案1

[xbar stacked]选项意味着在第一条的右侧添加下一个条(从 开始xmin)。实际上,您最大的问题是[xmin=60]剪掉所有橙色条。

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots, pgfplotstable}    

\begin{document}

\begin{figure}
\begin{tikzpicture}
  \begin{axis}[
        xmin=0,  
        xmax=100,
        xbar=-1mm,
        xmajorgrids = true,
        bar width=1mm, 
        width=11.5cm,
        height=10cm, 
        xlabel={Accuracy \%},
        symbolic y coords={a,b,c,d,e,f,g},
        ytick=data
  ]

\addplot[fill=black] coordinates {(70.7,a)(70.2,b)(70,c)(70,d)(70,e)(70,f)(70,g)};
\addplot[fill=orange] coordinates {(50.5,a)(40.3,b)(30.0,c)(30.0,d)(30.0,e)(30.0,f)(30.0,g)};

\end{axis}
\end{tikzpicture}
\end{figure}

\end{document}

演示

答案2

我认为你应该先画出黑色的图:

但我没有看到其他问题。

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots, pgfplotstable}    

\begin{document}

\begin{figure}
\begin{tikzpicture}
  \begin{axis}[
        xmin=60,  
        xmax=100,
        xbar stacked,
        xmajorgrids = true,
        bar width=1mm, 
        width=11.5cm,
        height=10cm, 
        xlabel={Accuracy \%},
        symbolic y coords={a,b,c,d,e,f,g},
        ytick=data
  ]


\addplot[fill=black] coordinates {(70.7,a)(70.2,b)(70,c)(70,d)(70,e)(70,f)(70,g)};

\addplot[fill=orange] coordinates {(50.5,a)(40.3,b)(30.0,c)(30.0,d)(30.0,e)(30.0,f)(30.0,g)};

\end{axis}
\end{tikzpicture}
\end{figure}

\end{document}

在此处输入图片描述

相关内容