나는 현재 내 상자 그림에 대해 x축 나누기를 진행하는 방법에 대해 고민하고 있습니다. 약간 관련된 tex.stackexchange 게시물을 살펴보면 이것이 groupplot으로 달성 가능해야 한다고 추측하지만 내 코드를 축에서 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}
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}
감사해요!
편집하다:
나중에 참조할 수 있는 작업 코드:
\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}
답변1
귀하의 예제에서 가장 먼저 누락된 것은 입니다 \usepgfplotslibrary{groupplots, statistics}
. 그러나 실제 문서에 해당 항목이 있다고 가정합니다.
코드에 몇 가지 문제가 있습니다.
그룹 플롯의 축에 대한 일반적인 옵션은 내부가 아니라
group style
외부에 있습니다. 따라서axis line style={-}, ytick=\empty
이동이 필요합니다.축의 너비만 설정하지만 높이도 설정하지 않으면 종횡비가 일정하게 유지됩니다. 축 레이블을 위한 공간을 확보하기 위해 기본적으로 축의 너비와 높이는 지정된 길이보다 45pt 작게 설정됩니다.
scale only axis
축 상자 자체에 길이를 적용하려면 추가하십시오 . 그렇지 않으면 2cm 폭의 축이 매우 작아집니다.두 번째 축의 좌표 플롯에서 x 값과 y 값을 바꿨습니다.
An은
axis discontinuity
항상 축 선의 시작 부분에 배치되지만 이를 두 개의 축으로 분할했으므로 이것이 필요하지 않습니다. 대신x axis line style={-|}
선을 추가하는 등의 방법으로 축 선의 화살표 유형을 변경했습니다 . (또는 더 긴 막대를 얻으려면 추가\usetikzlibrary{arrows.meta}
하고 사용하십시오 .)x axis line style={-{Bar[width=15pt]}}
다른 조정도 한 것 같은데, 그게 제가 생각하는 주요 사항이었습니다.
\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}