我在\pgfmathsetmacro
s 中存储了一些变量。当绘制的点返回错误时,我在 Mathematica 上检查了该数学。 \pm\infp
约为\pm 1.51022
并且\pm\infn
约为\pm 0.46823
。然后我需要确定它们的对应y
值。方程式是x^2exp(-x^2)
。看起来一切都设置正确,但绘图仅显示 左右的一个点,(-3, 0)
该点不在球场范围内。由于一切看起来都是正确的,我不确定发生了什么或出了什么问题。
\documentclass[tikz, convert = false]{standalone}%
\usepackage{pgfplots}
\pgfplotsset{compat = 1.10}
\begin{document}
\begin{tikzpicture}
\pgfmathsetmacro{\infp}{sqrt(5 + sqrt(17))/2}
\pgfmathsetmacro{\infn}{sqrt(5 - sqrt(17))/2}
\pgfmathsetmacro{\yp}{(\infp)^2*exp(-(\infp)^2)}
\pgfmathsetmacro{\yn}{(\infn)^2*exp(-(\infn)^2)}
\begin{axis}[
axis lines = middle,
xmin = -3,
xmax = 3,
ymin = 0,
ymax = .5,
xlabel = {x},
ylabel = {y},
ytick = {0.4},
unit vector ratio = 1 1 1
]
\addplot[blue, smooth] gnuplot[domain = -3:3, samples = 500]
{x^2*exp(-x^2)};
\foreach \x/\y in {\infp/\yp, -\infp/\yp, \infn/\yn, -\infn/\yn}{
\begingroup\edef\temp{%
\endgroup\noexpand\filldraw[red] (\x, \y) circle[radius = 0.025];}
\temp
}
\end{axis}
\end{tikzpicture}
\end{document}
答案1
pgfplots
目前仅支持axis cs
将一些内容写入轴。
因此,你需要写
\filldraw (axis cs:\x,\y) ... ;
一切都很好。