\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}
각 데이터 범위별로 잘 보여드리고 싶지만, 각 데이터 범위 사이의 간격이 너무 커서 두 박스플롯이 단단해 보입니다. 데이터 범위를 줄여서 눈금에 지수 표기법으로 대체하려고 했으나, 표현해야 할 그래프의 범위가 좁아서 어색했습니다. 나에게 좋은 방법이 있을까요?
답변1
왜냐하면여기서는 로그 스케일로 전환할 수 없습니다. 아래와 같이 분할 드로잉을 수행하는 것이 좋습니다. 비고:
- 단일 축을 3개의 개별 축으로 복사했습니다.
scope
예를 들어 배치를 위해 각 내부에 a를 넣으십시오 .- 너비와 높이를 각각 할당했습니다.
- 어떤 종류의 배율을 나타내기 위해 선/화살표를 넣으세요.
있다멋진 사진을 위해 해야 할 일이 몇 가지 남았습니다.
- 더 나은 최소/최대 값을 선택하면 모든 "0"이 중앙에 정렬됩니다.
- 그리기를 단순화하기 위해 각 범위에 전역 이름을 할당하는 방법을 찾습니다. 예를 들어
\draw (A.south) -- (B.north west);
(A)가 첫 번째 범위이고 (B)가 두 번째 범위입니다.
최종 제안: 클래스에서 이 그림을 만들고 standalone
패키지를 사용하여 graphicx
해당 PDF를 선택한 문서 클래스에 이미지로 포함합니다.
\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}