Quebra do eixo X para boxplot com groupplot

Quebra do eixo X para boxplot com groupplot

No momento, não sei como proceder para obter uma quebra do eixo x para meu boxplot. Ao passar por postagens ligeiramente relacionadas ao tex.stackexchange, acho que isso deve ser possível com o groupplot, mas meu boxplot não é exibido quando alterno meu código do eixo para o groupplot.

Para ilustrar o que eu gostaria de alcançar:

Algum conselho sobre isso?

Código funcionando sem break e groupplot:

\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 não funcionando para boxplot com quebra do eixo 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}

Obrigado!

Editar:

Código de trabalho para referência 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}

Responder1

A primeira coisa que falta em seu exemplo é \usepgfplotslibrary{groupplots, statistics}, mas suponho que você os tenha em seu documento real.

Existem algumas coisas erradas no seu código.

  • As opções comuns para os eixos em um groupplots não vão para dentro group style, mas para fora. Portanto, axis line style={-}, ytick=\emptyprecisa ser movido.

  • Você define apenas a largura do eixo, mas a proporção permanecerá constante se você não definir a altura também. Considere também que, por padrão, a largura e a altura de um eixo serão definidas para 45pt a menos que os comprimentos especificados, para liberar espaço para os rótulos dos eixos. Adicione scale only axispara que os comprimentos se apliquem à própria caixa do eixo, caso contrário, um eixo de 2 cm de largura torna-se bastante pequeno.

  • No gráfico de coordenadas no segundo eixo, você trocou os valores de x e y.

  • An axis discontinuityé sempre colocado no início da linha do eixo, mas como você o dividiu em dois eixos, isso não é necessário. Em vez disso, alterei o tipo de seta para as linhas do eixo, por exemplo, x axis line style={-|}para adicionar as linhas. (Ou adicione \usetikzlibrary{arrows.meta}e use x axis line style={-{Bar[width=15pt]}}para obter uma barra mais longa.)

Acho que fiz alguns outros ajustes também, essas foram as principais coisas que eu acho.

insira a descrição da imagem aqui

\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}

informação relacionada