플롯에 선을 그리고 레이블을 지정하시겠습니까?

플롯에 선을 그리고 레이블을 지정하시겠습니까?

나는 LaTeX로 플롯을 그리는 첫 번째 모험을 시작했습니다. 막대 차트를 플롯할 수 있었습니다. 평균을 표시하려는 두 개의 값 그룹이 있습니다. 막대 차트 위에 가로 막대를 배치하고 평균 값을 표시하려고 합니다. 불행하게도 드로잉은 스케일링이나 이와 유사한 기능과 결합되지 않습니다. 스케일링/레이블 지정에서 무언가를 변경해야 하는 순간에는 모든 것이 제자리에서 벗어나게 됩니다. 기본 차트의 데이터 값에 해당하는 선(또는 화살표)을 그리는 모범 사례 방법이 있습니까?

답변1

의 환경 tikz \draw내에서 를 사용하는 데 문제가 있다고 가정합니다 . 이 경우 빨간색 점선으로 표시된 좌표계를 사용해야 합니다 .\pgfplotaxisaxis cs

여기에 이미지 설명을 입력하세요

노트:

  • node이 선에 라벨을 추가하려면 그리기의 일부로 를 사용할 수 있습니다 .
  • 라벨의 위치는 다음에서 다룹니다.경로를 따라 라벨 이동.
  • Jake의 답변 덕분에(현재 축.원점 왼쪽)에 Shift 적용, 아래의 두 번째 MWE는 최소값과 최대 x값을 지정하지 않고도 작동해야 합니다. 정의에서는 값만 y지정하면 됩니다 \VerticalPos.

코드: 최소 및 최대 x 값을 모두 지정합니다.

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}
    \addplot {x*x};
    \draw [ultra thick, dotted, draw=red] 
        (axis cs: -6,12) -- (axis cs: 6,12)
        node[pos=0.5, above] {$y=12$};
\end{axis}
\end{tikzpicture}
\end{document}

코드: 최소 및 최대 x 값을 자동으로 결정합니다.

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
\begin{axis}
    \addplot {x*x};
    
    \newcommand*{\VerticalPos}{12}% Desired vertical postion
    \coordinate (Left)  at ($(current axis.left of origin) +(axis direction cs: 0,\VerticalPos)$);
    \coordinate (Right) at ($(current axis.right of origin)+(axis direction cs: 0,\VerticalPos)$);
    
    \draw [ultra thick, dotted, draw=red] 
        (Left) -- (Right)
        node[pos=0.5, above] {$y=\VerticalPos$};
\end{axis}
\end{tikzpicture}
\end{document}

관련 정보