我在 x 轴上有两个刻度标记
\begin{equation}
\pm \sqrt{\frac{1 + \sqrt{33}}{2}}
\end{equation}
y 轴上有一个刻度标记
\begin{equation}
\frac{1 + \sqrt{33}}{2}
\end{equation}
我想要绘制的。(我把我认为可行的命令放在前面。因此,代码确实可以编译。)刻度标记表示标准抛物线和以 3 为圆心的圆的%
两个交点。$y=x^{2}$
(0, 1)
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=5in,axis equal image,clip=false,
axis lines=middle,
xmin=-3.5,xmax=3.5,samples=201,
ymin=-3,ymax=13,
restrict y to domain=-3:13,
ticklabel style={font=\tiny,fill=white},
xtick={\empty},ytick={\empty},
% extra x ticks={-\sqrt{(1 + \sqrt{33})/2},\sqrt{(1 + \sqrt{33})/2}},
% extra y ticks={1 + \sqrt{33}},
axis line style={latex-latex},
xlabel=$x$,ylabel=$y$,
xlabel style={at={(ticklabel* cs:1)},anchor=north west},
ylabel style={at={(ticklabel* cs:1)},anchor=south west}
]
\addplot[samples=201,domain=-3.5:3.5,blue] {x^2} node[anchor=west, pos=0.9,font=\footnotesize]{$y = x^{2}$};
\addplot[samples=201,domain=-3:3,blue] {1 + sqrt(9 - x^2)};
\addplot[samples=201,domain=-3:3,blue] {1 - sqrt(9 - x^2)};
%\draw [fill] ( sqrt( (1 + sqrt{33})/2), (1 + sqrt{33})/2 ) circle [radius=1.5pt];
\end{axis}
\end{tikzpicture}
\end{document}
答案1
\sqrt
中的是拼写错误吗extra x ticks
?\sqrt
是宏排版平方根,而不是计算,因此无论如何都不会起作用。
不过,对于刻度,使用正确的语法似乎也行不通。对于这里刻度数较少的情况,一种可以接受的解决方法是使用宏\pgfmathsetmacro
来计算值并将结果存储在宏中。您也可以使用这些宏在交叉点处绘制点。
对于\draw
,如果您想直接使用计算,则需要在每个坐标周围加上一对括号,正如 salim bou 在评论中所说。原因是解析器在读取坐标时会寻找右括号,并对计算中的括号感到困惑。
如果要漂亮地打印刻度标签,则需要使用extra x tick labels
/extra y tick labels
或xticklabels
/ yticklabels
。我将其添加到代码中,但已注释掉。要完全删除刻度标签,只需向这些键添加一个空列表,例如xticklabels={}
。
(实际上,我不明白为什么extra
在这种情况下要使用刻度,因此在下面的代码中我使用了xtick
/ytick
和xticklabels
/ yticklabels
,但这只是个人偏好。)
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\pgfmathsetmacro{\extraxtick}{sqrt((1 + sqrt(33))/2)}
\pgfmathsetmacro{\extraytick}{(1 + sqrt(33))/2}
\begin{axis}[width=5in,axis equal image,clip=false,
axis lines=middle,
xmin=-3.5,xmax=3.5,samples=201,
ymin=-3,ymax=13,
restrict y to domain=-3:13,
ticklabel style={font=\tiny,fill=white},
xtick={-\extraxtick,\extraxtick},
ytick={\extraytick},
xticklabels={},
yticklabels={},
%xticklabels={$-\sqrt{\frac{1 + \sqrt{33}}{2}}$,$\sqrt{\frac{1 + \sqrt{33}}{2}}$},
%yticklabels={$\frac{1 + \sqrt{33}}{2}$},
axis line style={latex-latex},
xlabel=$x$,ylabel=$y$,
xlabel style={at={(ticklabel* cs:1)},anchor=north west},
ylabel style={at={(ticklabel* cs:1)},anchor=south west}
]
\addplot[samples=201,domain=-3.5:3.5,blue] {x^2} node[anchor=west, pos=0.9,font=\footnotesize]{$y = x^{2}$};
\addplot[samples=201,domain=-3:3,blue] {1 + sqrt(9 - x^2)};
\addplot[samples=201,domain=-3:3,blue] {1 - sqrt(9 - x^2)};
\draw [fill] (\extraxtick, \extraytick) circle [radius=1.5pt]
(-\extraxtick, \extraytick) circle [radius=1.5pt];
\end{axis}
\end{tikzpicture}
\end{document}