\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}
Quero mostrar bem cada intervalo de dados, mas a lacuna entre cada intervalo de dados é tão grande que os dois boxplots parecem sólidos. Tentei reduzir o intervalo de dados e substituí-lo pela notação exponencial na escala, mas foi estranho porque o intervalo de gráficos a serem expressos é estreito. Existe uma boa maneira para mim?
Responder1
Porquevocê não pode mudar para escala logarítmica aqui, sugiro fazer algum tipo de desenho dividido, como mostrado abaixo. Observações:
- copiou seu eixo monolítico em 3 eixos individuais
- coloque cada insied a
scope
, por exemplo, para posicionamento - atribuiu uma largura e uma altura a cada
- coloque algumas linhas/setas para indicar algum tipo de ampliação
Háalgumas tarefas que faltam fazer para uma bela foto:
- selecione melhores valores mínimo/máximo, para que todos os "0" fiquem alinhados ao centro
- encontre uma maneira de atribuir nomes globais a cada escopo para simplificar o desenho, por exemplo, como
\draw (A.south) -- (B.north west);
, onde (A) é o primeiro e (B) o segundo escopo
Sugestão final: Crie este desenho em uma standalone
classe E use o pacote graphicx
para incluir o referido pdf como imagem na classe de documento de sua escolha.
\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}