노드는 플롯 가장자리 근처에서 부분적으로만 렌더링되었습니다.

노드는 플롯 가장자리 근처에서 부분적으로만 렌더링되었습니다.

비교적 간단한 수직선 차트를 그리려고 하는데 노드 중 하나가 플롯 가장자리에 너무 가까우면 잘립니다.

코드:

\documentclass{article}

\usepackage{natbib}
\usepackage{graphicx}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
  width=\columnwidth,
  axis y line=none,
  axis lines=left,
  axis line style={-},
  xmin=0,
  xmax=1,
  ymin=0,
  ymax=1,
  xlabel=$\mu$,
  scatter/classes={o={mark=*}},
  restrict y to domain=0:1,
  xtick={0,1}
]
\draw[ultra thin] (axis cs:0, 0) -- (axis cs:0,.05);
\draw[ultra thin] (axis cs:.4, 0) -- (axis cs:.4,.05);
\node[coordinate,label=above:{$B$}] at (axis cs:0.0,0.05) {};
\node[coordinate,label=above:{$A$}] at (axis cs:0.4,0.05) {};
\node[coordinate,label=above:{$b$}] at (axis cs:0.2,0.02) {};
\node[coordinate,label=above:{$a$}] at (axis cs:0.7,0.02) {};
\end{axis};
\end{tikzpicture}
\end{document}

결과:

부분적으로 렌더링된 노드 라벨

B를 완전히 렌더링하려면 어떻게 해야 합니까?

답변1

기본적으로 axis경계 상자 내부의 모든 경로는 잘립니다. 이것이 B를 자르는 것입니다. 클리핑을 끄려면 clip=false축 옵션에 추가하세요.

클리핑은 섹션에서 논의됩니다.4.19.2 클리핑~의매뉴얼(2013-03-07자 버전 1.8의 경우 pgfplots).

의견에서 Jake가 언급했듯이 버전 1.8에서는 플롯 라인을 자르지만 일반 노드는 자르지 않는 pgfplots키가 도입되었습니다.clip mode=individual

\documentclass{article}

\usepackage{natbib}
\usepackage{graphicx}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
  width=\columnwidth,
  axis y line=none,
  axis lines=left,
  axis line style={-},
  xmin=0,
  xmax=1,
  ymin=0,
  ymax=1,
  xlabel=$\mu$,
  scatter/classes={o={mark=*}},
  restrict y to domain=0:1,
  xtick={0,1},
  clip=false    % <-- new addition
  % clip mode=individual  % alternative
]
\draw[ultra thin] (axis cs:0, 0) -- (axis cs:0,.05);
\draw[ultra thin] (axis cs:.4, 0) -- (axis cs:.4,.05);
\node[coordinate,label=above:{$B$}] at (axis cs:0.0,0.05) {};
\node[coordinate,label=above:{$A$}] at (axis cs:0.4,0.05) {};
\node[coordinate,label=above:{$b$}] at (axis cs:0.2,0.02) {};
\node[coordinate,label=above:{$a$}] at (axis cs:0.7,0.02) {};
\end{axis};
\end{tikzpicture}
\end{document}

관련 정보