Как нарисовать полузаполненный круг на моей оси. Я хочу, чтобы маркер был в начале координат и был заполнен на левой половине круга.
\documentclass[12pt,]{article}
\usepackage{graphicx}
\usepackage{pgfplots}
\begin{document}
%what i want my marker to look like
\begin{tikzpicture}
\draw (0,0) circle (1cm);
\clip (0,0) circle (1cm);
\fill[black] (0cm,1cm) rectangle (-1cm,-1cm);
\end{tikzpicture}
%what the graph looks like and the marker looks like
\begin{tikzpicture}
\begin{axis}[
minor tick num=1,
axis x line = center,
axis y line = middle,
xlabel={$x$},
ylabel={$\dot{x}$},
ymin=-5, ymax=5
]
%\draw[thin] (axis cs:1,0) circle [radius=3pt] node[above left] {$(1,0)$};
\draw[fill] (axis cs:0,0) circle [radius=3pt] node[below right] {$(0,0)$};
\addplot [smooth,blue, mark=none,
domain=-5:5] {x^2};
\end{axis}
\end{tikzpicture}
\end{document}
решение1
Согласно комментарию @percusse, вы можете использовать mark=halfcircle*
и применять вращение, как показано (0,0)
ниже.
В качестве альтернативы вы можете адаптировать свою версию и определить пользовательский макрос, чтобы разместить его по желанию (как показано на (1,1)
). Это имеет то преимущество, что не применяется fill
к белой части. Кроме того, вы можете использовать эту технику для создания любого другого типа маркера, который вы хотите выделить особыми точками.
Код:
\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{pgfplots}
\begin{document}
%%what i want my marker to look like
% \begin{tikzpicture}
% \draw (0,0) circle (1cm);
% \clip (0,0) circle (1cm);
% \fill[black] (0cm,1cm) rectangle (-1cm,-1cm);
% \end{tikzpicture}
%
\newcommand{\MyHalfCircle}[3][0.4ex]{%
% #1 = size
% #2 = x coordinate
% #3 = y coordinate
\begin{scope}
\draw (axis cs:#2,#3) circle (#1);
\clip (axis cs:#2,#3) circle (#1);
\fill[red, opacity=0.75] (axis cs:#2,#1) rectangle (axis cs:-#1,-#1);
\end{scope}
}
%what the graph looks like and the marker looks like
\begin{tikzpicture}
\begin{axis}[
minor tick num=1,
axis x line = center,
axis y line = middle,
xlabel={$x$},
ylabel={$\dot{x}$},
ymin=-5, ymax=5
]
\addplot [smooth,blue, mark=none,thick, domain=-5:5] {x^2};
\addplot [mark=halfcircle*, mark options={rotate=90}] coordinates {(0,0)};
\MyHalfCircle{1}{1};
\end{axis}
\end{tikzpicture}
\end{document}