Grupos de diagramas de caja que utilizan coordenadas simbólicas.

Grupos de diagramas de caja que utilizan coordenadas simbólicas.

Me gustaría crear una trama similar a la ejemplo de diagrama de barras, pero con diagramas de caja en lugar de barras.

Hasta ahora lo que tengo este MWE:

\documentclass{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{statistics}

\begin{document}

\pgfplotstableread{
%\begin{filecontents}{test.dat}
error
1
2
3
5
5
5
5
5
5
15
%\end{filecontents}
}\mytable

%Define the color series
\definecolor{RYB1}{RGB}{230,97,1}
\definecolor{RYB2}{RGB}{200,150,250}
\pgfplotscreateplotcyclelist{colorbrewer-RYB}{
{RYB1!50!black,fill=RYB1},
{RYB2!50!black,fill=RYB2}} %Do not add a comma after the last element of the list!

%Define the width of the boxes
\def\boxwidth{0.75}%

\begin{tikzpicture}
\begin{axis}[
    scale only axis,
    axis on top,
    ymin=0, ymax=20,
    ylabel={Error [m]},
    boxplot/draw direction=y,
    cycle list name=colorbrewer-RYB,
    xtick={1.5, 4.5},
    xticklabels={Group A, Group B},
    tick align=inside,
    xtick style={draw=none},
    legend style={at={(0.5,-0.15)}, anchor=north,legend columns=-1},
    legend image code/.code={
    \draw[#1, draw=none] (0cm,-0.1cm) rectangle (0.6cm,0.1cm);
    },
]

%Group A
\addplot+[
    boxplot={
        draw position=1,
        average, % <---- Where is the average?
        box extend=\boxwidth
    },
]
table[ y index=0, row sep=newline ]{\mytable}; % <---- Where are the outliers?
\addlegendentry{Yes\;};

\addplot+[
    boxplot={
        draw position=2,
        every average, % <---- This was a desperate try with a surprising result
        box extend=\boxwidth
    },
]
table[ y index=0, row sep=newline ]{\mytable};
\addlegendentry{No\;};

%Group B
\addplot+[
    boxplot prepared={draw position=4,
        lower whisker=2.5,
        lower quartile=4,
        median=5,
        average=6,
    upper quartile=8,
        upper whisker=9,
        box extend=\boxwidth,
    }
]
coordinates {(0,12) (0,10)};

\addplot+[
    boxplot prepared={draw position=5,
        lower whisker=2.5,
        lower quartile=4,
        median=8.5,
        average=10,
    upper quartile=12,
        upper whisker=15,
        box extend=\boxwidth,
    },
]
table[row sep=\\,y index=0] { 0\\ 14\\ 15\\ };

\end{axis}
\end{tikzpicture}
\end{document}

lo que resulta en

ingrese la descripción de la imagen aquí

Solicitud de adiciones/características

  • Sería bueno poder crear este tipo de diagramas de caja agrupados de manera similar a como se hace con los diagramas de barras. En estos, se puede especificar un conjunto de coordenadas simbólicas y simplemente agregar barras usando esas coordenadas. Las barras con la misma coordenada forman entonces un grupo, en el que la separación se cuida automáticamente.

  • En el MWE presentado, todas las cantidades dimensionales se definen manualmente. Si es posible, sería bueno poder crear la figura para que se escale automáticamente al definir la altura y el ancho deseados, por ejemplo usando algo así \setlength\figureheight{1.5in}% \setlength\figurewidth{1.5in}% para que no haya necesidad de cambiar las longitudes manualmente. Con este fin, supongo que sería útil poder agregar los cuadros usando coordenadas simbólicas.

Problemas con el MWE presentado

Los datos de las dos primeras parcelas (Grupo A) se toman de la misma tabla, mientras que las cajas de las otras dos (Grupo B) se preparan. La figura anterior tiene los siguientes problemas (que no sé como solucionar, obviamente estoy haciendo algo mal...)

Problemas con los promedios

  • En el primer cuadro utilicé la opción 'promedio' con la intención de trazar el promedio, pero no funciona.
  • En el segundo, intenté (por accidente) utilizar "todos los promedios", con un resultado sorprendente: traza los valores atípicos.

¿Cómo trazar los promedios correctamente? Si es posible para que se pueda seleccionar la forma (la misma forma para todas las cajas).

Problemas con valores atípicos

También quiero trazar los valores atípicos en todos los cuadros y, si es posible, poder seleccionar la forma (la misma para todos los cuadros).

  • En el caso de los 2 primeros gráficos, al ser datos sin procesar importados de una tabla, supongo que el cálculo de los valores atípicos es automático. Quizás necesito agregar la opción correcta... ¿Cómo agregarlas?

  • En el caso de los gráficos preparados, intenté agregar coordenadas y una tabla, sin éxito. ¿Qué me estoy perdiendo?

información relacionada