\documentclass{article}
\usepackage{graphicx} % Required for inserting images
\usepackage{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\usepgfplotslibrary{statistics}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
ytick={1,2,3},
yticklabels={PT,RP-T,P-T},
% xticklabels={1,2,3,4,5,6,7,a},
]
\addplot+[
boxplot prepared={
median=-0.052077,
upper quartile=1.627744,
lower quartile=-1.613357,
upper whisker=9.878565,
lower whisker=-8.484539
},
] coordinates {};
\addplot+[
boxplot prepared={
median=0.893359,
upper quartile=32.047894,
lower quartile=-29.725945,
upper whisker=219.879028,
lower whisker=-242.360413
},
] coordinates {};
\addplot+[
boxplot prepared={
median=357.228912,
upper quartile=32866.879883,
lower quartile=-31571.360840,
upper whisker=149471.640625,
lower whisker=-147415.8125
},
] coordinates {};
\end{axis}
\end{tikzpicture}
\end{document}
Quiero mostrarles bien cada rango de datos, pero la brecha entre cada rango de datos es tan grande que los dos diagramas de caja parecen sólidos. Intenté reducir el rango de datos y reemplazarlo con notación exponencial en la escala, pero fue incómodo porque el rango de gráficos a expresar es estrecho. ¿Existe una buena manera para mí?
Respuesta1
PorqueNo puedes cambiar a escala logarítmica aquí. Te sugiero hacer algún tipo de dibujo dividido, como se muestra a continuación. Observaciones:
- copió su eje monolítico en 3 individuales
- Ponga cada uno dentro
scope
, por ejemplo, para su colocación. - Asignó un ancho y alto a cada uno.
- Ponga algunas líneas/flechas para indicar algún tipo de aumento.
HayAlgunas tareas que quedan por hacer para una bonita foto:
- seleccione mejores valores mínimo/máximo, para que todos los "0" se alineen en el centro
- encuentre una manera de asignar nombres globales a cada alcance para simplificar el dibujo, por ejemplo, como
\draw (A.south) -- (B.north west);
, donde (A) es el primero y (B) el segundo alcance.
Sugerencia final: Cree este dibujo en una standalone
clase Y use el paquete graphicx
para incluir dicho pdf como imagen en la clase de documento que elija.
\documentclass{article}
%\usepackage{graphicx} % Required for inserting images
%\usepackage{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\usepgfplotslibrary{statistics}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[
>={Stealth},
ind/.style={->, teal!50},
]
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\begin{scope}
\begin{axis}
[
ytick={1},
yticklabels={PT},
% xticklabels={1,2,3,4,5,6,7,a},
height=4cm, width=10cm,
]
\addplot+[
boxplot prepared={
median=357.228912,
upper quartile=32866.879883,
lower quartile=-31571.360840,
upper whisker=149471.640625,
lower whisker=-147415.8125
},
] coordinates {};
\end{axis}
\end{scope}
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\begin{scope}[yshift=-4cm]
\begin{axis}
[
ytick={1},
yticklabels={RP-T},
% xticklabels={1,2,3,4,5,6,7,a},
height=4cm, width=10cm,
]
\addplot+[
boxplot prepared={
median=0.893359,
upper quartile=32.047894,
lower quartile=-29.725945,
upper whisker=219.879028,
lower whisker=-242.360413
},
] coordinates {};
\end{axis}
\end{scope}
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\begin{scope}[yshift=-8cm]
\begin{axis}
[
ytick={1},
yticklabels={P-T},
% xticklabels={1,2,3,4,5,6,7,a},
height=4cm, width=10cm,
]
\addplot+[
boxplot prepared={
median=-0.052077,
upper quartile=1.627744,
lower quartile=-1.613357,
upper whisker=9.878565,
lower whisker=-8.484539
},
] coordinates {};
\end{axis}
\end{scope}
% ~~~ drawing some lines ~~~~~~~~~~~~
\draw[ind] (4.2,- .5) -- (0,-1.5);
\draw[ind] (4.2,-4.5) -- (0,-5.5);
\draw[ind] (4.3,- .5) -- (8.5,-1.5);
\draw[ind] (4.5,-4.5) -- (8.5,-5.5);
\end{tikzpicture}
\end{document}