2 histogramas con eje x común no están alineados

2 histogramas con eje x común no están alineados

Tengo que seguir el código de látex:

\usepackage{tikz}
\usepackage{pgfopts}
\usepackage{pgfplotstable}
\begin{document}
\begin{tikzpicture}[scale=1]
\begin{axis}[minor tick num=1,
            scale only axis,
            height=5cm,
            width=\textwidth*0.8,
            xlabel=\textnumero contestants,
            ylabel style={overlay},
                yticklabel style={overlay},
            xticklabel style={overlay},
            ylabel=,
            ybar,
            ymin=0,
            legend style={at={(0, 1)},anchor=west},
            legend entries={\textnumero matches, \textnumero rounds}]
\addplot [draw opacity=0,fill=yellow!50] table [x index=0, y index=1] {charts/merge_no_matches_rounds.csv};
\addplot [draw opacity=0,fill=green] table [x index=0, y index=2] {charts/merge_no_matches_rounds.csv};
\end{axis}
\end{tikzpicture}
\end{document}

Este es el resultado: Resultado

El archivo de datos se ve así:

2   1   1
4   4   3
6   9   6
8   11  6
10  17  9
12  21  9
14  23  9
. . .
92  181 18
94  185 18
96  189 18
98  191 18
100 193 18

El área amarilla se ve bien, pero la verde tiene un desplazamiento extraño. ¿Cómo puedo resolver esto?

Respuesta1

No deberías utilizar un histograma aquí. Si un valor de los datos amarillos es inferior al valor verde correspondiente, su idea de trama ya no es práctica. Debes usar barras reales o apilamiento real, no una mezcla. (en realidad, las curvas simples serían las mejores)

Aún así, te proporciono una solución:

% arara: pdflatex

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\usepgfplotslibrary{fillbetween}
\usepackage{textcomp}
\usepackage{filecontents}
\begin{filecontents*}{charts/merge_no_matches_rounds.csv}
    2   1   1
    4   4   3
    6   9   6
    8   11  6
    10  17  9
    12  21  9
    14  23  9
    92  181 18
    94  185 18
    96  189 18
    98  191 18
    100 193 18
\end{filecontents*}
\begin{document}
    \begin{figure}
        \centering
    \begin{tikzpicture}
    \begin{axis}[%
    ,minor tick num=1
    ,scale only axis
    ,height=5cm
    ,width=\textwidth*0.8
    ,xlabel=\textnumero{} contestants
    ,yticklabel style={overlay}
    ,xticklabel style={overlay}
    ,ymin=0
    ,legend cell align=left
    ,legend style={at={(0, 1)},anchor=west}]
    \addplot [draw opacity=0,name path=f,area legend,fill=yellow!50] table [x index=0, y index=1] {charts/merge_no_matches_rounds.csv};
    \addplot [draw opacity=0,name path=g,area legend,fill=green] table [x index=0, y index=2] {charts/merge_no_matches_rounds.csv};
    \path[name path=axis] (axis cs:0,0.2) -- (axis cs:100,0.2);
    \addplot [draw opacity=0,color=yellow!50,fill=yellow!50]
    fill between[of=f and axis];
    \addlegendentry{\textnumero{} matches}
    \addplot [draw opacity=0,color=green,fill=green]
    fill between[of=g and axis];
    \addlegendentry{\textnumero{} rounds}
    \end{axis}
    \end{tikzpicture}
    \end{figure}    
\end{document}

ingrese la descripción de la imagen aquí

información relacionada