pgfplots、マークの前の線

pgfplots、マークの前の線

これに関する情報は見つかりませんでした: どうすれば線を表示できますか上/前マーカー?今はプロットされています後ろに図と凡例のダイヤモンドマーカー。

\documentclass{standalone}
\usepackage{xcolor, pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}
\addplot[mark=square*, mark options={fill=gray}] coordinates {(1,2)(2,1)};
\legend{x};
\end{axis}
\end{tikzpicture}

\end{document}

マークの下に線がある実際のケース

望ましいケースは次のようになります。

マークの上に線がある希望のケース

答え1

簡単な部分があります。 を使用すると、希望どおりのプロットを得ることができますmark layer。メインプロットの後ろのレイヤーにマークを描くだけです。そして、もう少し手間がかかる部分があります。凡例を準拠させるのです。この目的のために、 を少し変更しましたlegend image code。(正確には知るなぜこれを行う必要があるのか​​はわかりませんが、凡例は通常はプロットの前にあるため、凡例の内容が別のレイヤーに配置され、マークのレイヤーが再調整されるのは理にかなっています。

\documentclass{standalone}
\usepackage{xcolor, pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}

\begin{tikzpicture}
\begin{axis}[set layers,mark layer=axis background,
legend image code/.code={
         \draw [mark repeat=2,mark phase=2,#1] plot coordinates {
        (0cm,0cm) (0.3cm,0cm) (0.6cm,0cm)};
        \draw [#1] (0cm,0cm) rectangle (0.5cm,0cm);
    }]
\addplot[mark=square*, mark options={fill=gray}] coordinates {(1,2)(2,1)};
\legend{x};
\end{axis}
\end{tikzpicture}
\end{document}

ここに画像の説明を入力してください

答え2

TeX.SE へようこそ!

プロットを追加する前にポイントをプロットすると(ただし\node、pgfplot ではなくtikz でmark)、簡単です。

\documentclass{standalone}
\usepackage{xcolor, pgfplots}
\usetikzlibrary{shapes}

\begin{document}

\begin{tikzpicture}
\begin{axis}
\node[diamond,fill,color=orange,inner sep=2pt] at (axis cs:1,2) {};
\node[diamond,fill,color=red,inner sep=2pt] at (axis cs:2,1) {};
\node[diamond,fill,color=green,inner sep=2pt] at (axis cs:1.8,1.2) {};
\addplot[thick] coordinates {(1,2)(2,1)};
\legend{x};
\end{axis}
\end{tikzpicture}

\end{document}

PS: 方法もあると思いますpgfplotsが、私はあまり使いません。なので、他の回答を待ってください。私は主に使っていますがtikzpgfplots

ここに画像の説明を入力してください

関連情報