代码

代码

我正在尝试创建一个条形图,我对结果几乎很满意。我得到的是这样的

在此处输入图片描述

我想要的更改可以在下图中看到。我试图将每个条形图的值置于条形图的中心。另外,我不希望 1 位于顶部,而是应该显示红色条形图的实际高度。

在此处输入图片描述

知道如何进行这些更改吗?我尝试查看这里http://pgfplots.net/tikz/examples/stacked-bar-plot/,但我不确定我做了什么不同的事情。

还有什么方法可以避免在红色条上书写?因为我总是希望蓝色条减去红色条的高度等于 1。

代码

\documentclass[12pt, a4paper, border=2mm]{standalone}

\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    ybar stacked,
    bar width=20pt,
    x=1cm,
    nodes near coords,
    enlargelimits=0.15,
    ymin = 0,
    legend style={at={(0.5,-0.20)},
      anchor=north,legend columns=-1},
    ylabel={Winning probability},
    symbolic x coords={tool1, tool2, tool3, tool4, 
        tool5, tool6, tool7, tool8},
    xtick={tool1, tool2, tool3, tool4, 
        tool5, tool6, tool7, tool8},
    xticklabels = {(1,8), (2,7), (3,6), (4,5), (5,4), (6,3), (7,2), (8,1)},
    x tick label style={rotate=45,anchor=east},
    ]
\addplot+[ybar] plot coordinates {
    (tool1,0.778) 
    (tool2,0.611) 
    (tool3,0.500) 
    (tool4,0.444) 
    (tool5,0.444) 
    (tool6,0.500) 
    (tool7,0.611) 
    (tool8,0.778)};
\addplot+[ybar] plot coordinates {
    (tool1,0.222) 
    (tool2,0.389) 
    (tool3,0.500) 
    (tool4,0.556) 
    (tool5,0.556) 
    (tool6,0.500) 
    (tool7,0.389) 
    (tool8,0.222)};
\legend{\strut Knut wins, \strut Nora wins}
\end{axis}
\end{tikzpicture}
\end{document}

答案1

添加

\pgfplotsset{compat=1.9}

(或某个更高的版本号)添加到序言中。

相关内容