半分塗りつぶされた円マーカー

半分塗りつぶされた円マーカー

軸上に半分塗りつぶされた円を描くにはどうしたらよいでしょうか。マーカーを原点に配置し、円の左半分を塗りつぶしたいと思います。

\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}

関連情報