Я впервые в жизни занимаюсь черчением в LaTeX. Мне удалось построить гистограмму. У меня есть две группы значений, для которых я хочу показать среднее значение. Я собираюсь поместить горизонтальную полосу поверх гистограммы и позволить ей показывать средние значения. Рисование, к сожалению, не связано с масштабированием или чем-то подобным. В тот момент, когда мне нужно будет что-то изменить в масштабировании/маркировке, все будет не на своих местах. Есть ли лучший способ рисовать линии (или стрелки), которые соответствуют значениям данных базовой диаграммы?
решение1
Я предполагаю, что у вас возникли проблемы с использованием tikz
\draw
в среде \pgfplot
's axis
. В этом случае вам нужно использовать axis cs
систему координат, как показано пунктирной линией красного цвета:
Примечания:
- Чтобы добавить метку к этой линии, вы можете использовать ее
node
как часть чертежа. - Расположение этикетки указано наПеремещение метки по пути.
- Спасибо за ответ Джейка наПрименить сдвиг к (текущая ось.слева от начала координат), второй 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}