이전 질문을 살펴보았습니다. [1,2,삼], 하지만 여전히 서로 다른 레이어에 플롯을 그리는 방법과 그리기 순서를 변경하는 방법을 알 수 없었습니다.
이 MWE의 경우, 플롯 명령/정의를 동일한 순서로 유지하면서 범례 항목이 동일한 순서를 갖도록 세 플롯의 표시 순서를 변경하는 방법을 알아낼 수 있다면 감사하겠습니다. 가능한.
\RequirePackage{luatex85}
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
legend style={
at={([yshift=30pt]0.5,1)},
anchor=north},
legend columns=-1,
xmin=0, xmax=10,
ymin=0, ymax=10,
]
%
\addplot [red, line width = 5pt, domain=0:10] {x}; \addlegendentry{$x$}
\addplot [black, line width = 5pt, domain=0:10] {(x-5)^2}; \addlegendentry{$(x-5)^2$}
\addplot [yellow, line width = 5pt, domain=0:10] {10-(x-5)^2}; \addlegendentry{$10-(x-5)^2$}
\end{axis}
\end{tikzpicture}
\end{document}
답변1
실제로 다른 레이어에 을 플롯해야 하는 경우 \addplot
다음 코드를 살펴보세요.
솔루션 작동 방식에 대한 자세한 내용은 코드의 주석을 살펴보세요.
% used PGFPlots v1.14
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{
% define the layers you need.
% (Don't forget to add `main' somewhere in that list!!)
layers/my layer set/.define layer set={
background,
main,
foreground
}{
% you could state styles here which should be moved to
% corresponding layers, but that is not necessary here.
% That is why we don't state anything here
},
% activate the newly created layer set
set layers=my layer set,
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
legend style={
% (it is better to use `anchor=south' because then the gap
% between the top axis line and the lower border of the
% legend is independent of the height of the legend box)
at={([yshift=10pt]0.5,1)},
anchor=south,
},
legend columns=-1,
xmin=0, xmax=10,
ymin=0, ymax=10,
% moved common `\addplot' options here
domain=0:10,
every axis plot post/.append style={
line width=5pt,
},
% change `clip mode' to `individual' to avoid unwanted clipping
clip mode=individual,
]
\addplot [
red,
% and with `on layer' you can state the layer where the
% plot should be drawn on
on layer=foreground,
] {x};
\addlegendentry{$x$}
% because we don't state a layer here, this plot will be drawn
% on layer `main'
\addplot [black] {(x-5)^2};
\addlegendentry{$(x-5)^2$}
\addplot [
yellow,
on layer=background,
] {10-(x-5)^2};
\addlegendentry{$10-(x-5)^2$}
\end{axis}
\end{tikzpicture}
\end{document}