我尝试在 Pgfplots 中绘制函数 x * tan(pi/x) 的图像,但总是出现错误:
- \pgfmathfloattoint@@ 的参数有一个额外的 }
- 额外},或者被遗忘的\endgroup。
- 失控的争论?
- 额外\其他
- 计量单位非法(插入 pt)
如果我用其他符号(如 *、+ 或 -)替换“/”,它就可以正常工作……但对于任何三角函数,它都不允许我使用“/”。我已经尝试使用负指数 (x^{-1}),但仍然不起作用。
我尝试过清除缓存,但还是没有用。如果能帮我解决这个问题,我将非常感激。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{setspace}
\usepackage{pgfplots}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{amsmath}
\usepackage[nodisplayskipstretch]{setspace}
\usepackage{xcolor,soul}
\usepackage{tikz}
\usepackage{amssymb}
\usepackage{float}
\usepackage[margin=1in]{geometry}
\usetikzlibrary{shapes.geometric,angles,quotes,shapes}
\usetikzlibrary{patterns, arrows.meta,backgrounds,decorations,pathreplacing}
\usepackage{tkz-euclide}
\usepackage{pst-solides3d}
\usetkzobj{all}
\definecolor{antiquewhite}{rgb}{0.98, 0.92, 0.84}
\sethlcolor{antiquewhite}
\pgfplotsset{grid style={dashed,gray}}
\newcommand\nbvspace[1][3]{\vspace*{\stretch{#1}}}
\newcommand\nbstretchyspace{\spaceskip0.5em plus 0.25em minus 0.25em}
\newcommand{\nbtitlestretch}{\spaceskip0.6em}
\geometry{
a4paper,
total={216mm,303mm},
left=20mm,
top=20mm,
}
\begin{document}
%
\begin{center}
\begin{tikzpicture}
\begin{axis}[
x=0.5cm,
y=0.5cm,
every axis plot/.append style={very thick},
axis lines=center,
every axis y label/.style={
at={(ticklabel cs:0.9)},anchor=near yticklabel opposite,fill=white,
},
xlabel={$n$},
ylabel={$f(n)$},
xmin=0, xmax=30,
ymin=-5, ymax=15,
xtick={0,5,10,...,30},
ytick={-5,0,5,10,15},
ymajorgrids=true,
xmajorgrids=true,
grid style=dashed,
domain = 0:30,
]
\addplot[color=black,samples=1000,trig format=rad]{x*tan(pi/x)};
\addplot[color=black,samples=200,style=dashed,]{pi};
\end{axis}
\end{tikzpicture}
\end{center}
%
答案1
你除以零,这当然是不允许的。
\documentclass[12pt]{article}
\usepackage{pgfplots}
\pgfplotsset{grid style={dashed,gray}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
x=0.5cm,
y=0.5cm,
every axis plot/.append style={very thick},
axis lines=center,
every axis y label/.style={
at={(ticklabel cs:0.9)},anchor=near yticklabel opposite,fill=white,
},
xlabel={$n$},
ylabel={$f(n)$},
xmin=0, xmax=30,
ymin=-5, ymax=15,
xtick={0,5,10,...,30},
ytick={-5,0,5,10,15},
ymajorgrids=true,
xmajorgrids=true,
grid style=dashed,
domain = 0:30,
]
\addplot[color=black,samples=1000,trig format=rad]{x*tan(pi/ifthenelse(x,x,1))};
\addplot[color=black,samples=200,style=dashed,]{pi};
\end{axis}
\end{tikzpicture}
\end{document}
而不是除以X,我除以ifthen(x,x,1)
,所以如果X为零,则返回一。
另一方面,图形必然会非常粗糙,因为函数在区间 (0,2) 内有无数条渐近线,尽管显然没有一条能够用给定的采样率捕捉到。
顺便说一下,该函数在 0 处没有极限。