
以下の MWE では、プロットに矢印が表示されないのはなぜですか?
\documentclass[12pt, border=1pc]{standalone}
\RequirePackage{tikz}
\RequirePackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis x line=middle,
axis y line=middle,,
xtick={1.0, 3.0},
ytick={1.0, 3.0},
samples=100,
xmin=-1,xmax=4.5,
ymin=-1,ymax=4.5]
\addplot[domain={-1:4}]{x};
\addplot[domain={-1:4},
postaction={decorate,
decoration={markings,
mark=at position 2 with {\arrow[thick]{>}},
mark=at position 3 with {\arrowreversed[thick]{>}}}
}
]{((x-3)^2 * (x-1)^2) + x};
\end{axis}
\end{tikzpicture}
\end{document}
答え1
Y の範囲制限とmarks
位置の組み合わせにより、矢印が切り捨てられています。
プロットに矢印を表示するために必要のないものをコメントアウトすることでデバッグしました。
\begin{tikzpicture}
\begin{axis}[axis x line=middle,
% axis y line=middle,
% xtick={1.0, 3.0},
% ytick={1.0, 3.0},
% samples=100,
% xmin=-1,xmax=4.5,
% ymin=-1,ymax=4.5,
]
% \addplot[domain={-1:4}]{x};
\addplot[domain={-1:4},
postaction={decorate, decoration={
markings,
mark=at position 0.65 with {\arrow{>};}
}}
]{((x-3)^2 * (x-1)^2) + x};
\end{axis}
\end{tikzpicture}
矢印は、プロットされた曲線の 65% になるだろうと私が予想したまさにその位置にあります。
コードを少しいじってみると:
\begin{tikzpicture}
\begin{axis}[
% axis x line=middle,
% axis y line=middle,
% xtick={1, 3.0},
% ytick={1.0, 3.0},
samples=100,
xmin=-1,xmax=4,
ymin=-1,ymax=4.5,
]
% \addplot[domain={-1:4}]{x};
\addplot[domain={-1:4.5},
postaction={decorate, decoration={
markings,
mark=at position 0.65 with {\arrow{>};}
}}
]{((x-3)^2 * (x-1)^2) + x};
\end{axis}
\end{tikzpicture}