Actualmente no sé cómo proceder para obtener una ruptura del eje x para mi diagrama de caja. Al revisar publicaciones de tex.stackexchange ligeramente relacionadas, supongo que esto debería poder lograrse con el diagrama de grupo, pero mi diagrama de caja no se muestra cuando cambio mi código de eje a diagrama de grupo.
Para ilustrar lo que me gustaría lograr:
¿Algún consejo sobre esto?
Código de trabajo sin interrupción y diagrama de grupo:
\documentclass{minimal}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
ytick=\empty,
xmin=0, xmax=4500,
xtick={0,500,1000,2500,4500},
axis x line=bottom,
axis line style={-},
axis y line=none,
enlargelimits=0.05,
height=4.0cm, width=14.0cm,
]
\addplot+[
boxplot prepared={
upper quartile=650,
lower quartile=30,
upper whisker=1400,
lower whisker=0,
median=80
},black,
] coordinates {
(0,2100)
(0,2300)
(0,2900)
(0,3400)
(0,3700)
(0,4200)
};
\end{axis}
\end{tikzpicture}
\end{document}
Código que no funciona para el diagrama de caja con ruptura del eje x:
\documentclass{minimal}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
group style={
group name=my fancy plots,
group size=2 by 1,
axis line style={-},
ytick=\empty,
},
width=14cm,
]
\nextgroupplot[
xtick={0,1000,2000,3000},
axis x discontinuity=parallel,
axis x line=bottom,
width=10cm]
\addplot[
boxplot prepared={
upper quartile=650,
lower quartile=30,
upper whisker=1400,
lower whisker=0,
median=80
},black,
] coordinates {
(0,2100)
(0,2300)
(0,2900)
(0,3400)
(0,3700)
(0,4200)
};
\nextgroupplot[xmin=9500,xmax=9750,
xtick={9500,9750},
axis x line=bottom,
width=2.0cm]
\addplot coordinates {(0,9600)};
\end{groupplot}
\end{tikzpicture}
\end{document}
¡Gracias!
Editar:
Código de trabajo para referencia futura:
\documentclass{minimal}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
group style={
group name=my fancy plots,
group size=2 by 1,
horizontal sep=3pt % added
},
% the following are added
scale only axis,
height=3cm,
ymin=0.5,ymax=1.5,
axis y line=none,
axis x line=bottom,
]
\nextgroupplot[
xmin=-100,
ymin=0.5,ymax=1.5,
xtick={0,1000,2000,3000},
width=10cm,
x axis line style={-{Bar[width=15pt]}}
]
\addplot[
mark = x , mark options = {mark color=black},
boxplot prepared={
upper quartile=650,
lower quartile=30,
upper whisker=1400,
lower whisker=0,
median=80
},black,
] coordinates {
(0,2100)
(0,2300)
(0,2900)
(0,3400)
(0,3700)
(0,4200)
};
\nextgroupplot[xmin=9300,xmax=9900,
xtick={9500,9750},
width=2.0cm,
x axis line style={{Bar[width=15pt]}-}
]
\addplot [
mark = x, mark options = {mark color=black}]
coordinates {(9600, 1)};
\end{groupplot}
\end{tikzpicture}
\end{document}
Respuesta1
Lo primero que falta en su ejemplo es \usepgfplotslibrary{groupplots, statistics}
, pero supongo que los tiene en su documento real.
Hay algunas cosas mal en tu código.
Las opciones comunes para los ejes en un grupo de gráficos no van dentro
group style
, sino afuera. Por lo tanto,axis line style={-}, ytick=\empty
es necesario trasladarlo.Solo estableces el ancho del eje, pero la relación de aspecto permanecerá constante si no configuras también la altura. Considere también que, de forma predeterminada, el ancho y el alto de un eje se establecerán en 45 puntos menos que las longitudes especificadas, para dejar espacio para las etiquetas de los ejes. Agregue
scale only axis
para que las longitudes se apliquen al propio cuadro del eje; de lo contrario, un eje de 2 cm de ancho se vuelve bastante pequeño.En el gráfico de coordenadas del segundo eje, ha intercambiado los valores de x e y.
Una
axis discontinuity
siempre se coloca al inicio de la línea del eje, pero como la has dividido en dos ejes, no la necesitas. En lugar de eso, cambié el tipo de flecha para las líneas del eje, por ejemplo,x axis line style={-|}
para agregar las líneas. (O agregue\usetikzlibrary{arrows.meta}
y usex axis line style={-{Bar[width=15pt]}}
para obtener una barra más larga).
Creo que también hice algunos otros ajustes, creo que esas fueron las cosas más importantes.
\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots, statistics}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
group style={
group name=my fancy plots,
group size=2 by 1,
horizontal sep=3pt % added
},
% the following are added
scale only axis,
height=3cm,
ymin=0.5,ymax=1.5,
axis y line=none,
axis x line=bottom,
]
\nextgroupplot[
xmin=-100,
xtick={0,1000,2000,3000},
width=10cm,
x axis line style={-{Bar[width=15pt]}}
]
\addplot[
boxplot prepared={
upper quartile=650,
lower quartile=30,
upper whisker=1400,
lower whisker=0,
median=80
},black,
] coordinates {
(0,2100)
(0,2300)
(0,2900)
(0,3400)
(0,3700)
(0,4200)
};
\nextgroupplot[xmin=9350,xmax=9900,
xtick={9500,9750},
width=2.0cm,
x axis line style={{Bar[width=15pt]}-}
]
\addplot coordinates {(9600, 1)};
\end{groupplot}
\end{tikzpicture}
\end{document}