나는 LaTeX로 플롯을 그리는 첫 번째 모험을 시작했습니다. 막대 차트를 플롯할 수 있었습니다. 평균을 표시하려는 두 개의 값 그룹이 있습니다. 막대 차트 위에 가로 막대를 배치하고 평균 값을 표시하려고 합니다. 불행하게도 드로잉은 스케일링이나 이와 유사한 기능과 결합되지 않습니다. 스케일링/레이블 지정에서 무언가를 변경해야 하는 순간에는 모든 것이 제자리에서 벗어나게 됩니다. 기본 차트의 데이터 값에 해당하는 선(또는 화살표)을 그리는 모범 사례 방법이 있습니까?
답변1
의 환경 tikz
\draw
내에서 를 사용하는 데 문제가 있다고 가정합니다 . 이 경우 빨간색 점선으로 표시된 좌표계를 사용해야 합니다 .\pgfplot
axis
axis 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}