我正在尝试绘图$x^{-2},x^{-4}$
并$x^{-4}$
同时使用代码。
\documentclass[10pt]{article}
\usepackage{pgf,tikz,pgfplots}
\pgfplotsset{compat=1.15}
\usepackage{mathrsfs}
\usetikzlibrary{arrows}
\pagestyle{empty}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}
[width=2.5in,
axis line style = thick,
ymin=-1.5,ymax=3.5,
xmin=-3.5,xmax=5,
%clip=false,
xtick=\empty,
ytick={-1,0,1,2,3},
extra x ticks={3.14, 6.28},
every extra x tick/.style={
xticklabel style={anchor=north west},
axis lines = center,
xlabel=$x$,ylabel=$y$,
domain=-3.5:3.5,
samples=200,
]
\addplot [domain=-3.5:3.5, thick] {(x^(-2))};
\addplot [domain=-3.5:3.5, black, thick] {(x^(-4))};
\addplot [domain=-3.5:3.5, black, thick] {(x^(-6))};
\node at (axis cs:0.2, -0.22) {$O$} ;
\end{axis}
\end{tikzpicture}
\end{document}
当我尝试仅使用 运行时,$x^{-2},$
出现错误,尺寸太大。当我尝试运行所有三个$x^{-2}, x^{-4}$
时,$x^{-6}.$
出现错误,文件在扫描使用 时结束\pgfplots@@environment@axis
。
我不知道如何解决这个问题,因为在我看来每件事都是正确的。
答案1
您的代码中存在几个问题。实际上,您打开了环境或括号,但没有关闭它们。例如,在这里,您开始center
环境而没有结束它。但是您得到的错误pgfplots
来自于您在之后打开括号every extra x tick/.style
而没有关闭它的事实。然后,维度太大来自于这样一个事实:当接近 0 时,您尝试计算的函数确实变得太大而无法pgf
计算,x
因为它们趋向于无穷大,您甚至尝试使用pgf
您定义的域进行 1/0 的计算。
避免这种情况的一种方法是将图表分成两部分,一部分在 0 之前的某个地方停止,另一部分在 0 之后开始。另一种解决方案是使用restrict y to domain
轴环境中的键来过滤掉y
过大的值。
具有限制键的功能示例是:
\documentclass{standalone}
\usepackage{pgf,tikz,pgfplots}
\usetikzlibrary{arrows}
\pgfplotsset{compat=1.15}
\usepackage{mathrsfs}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width = 2.5in,
ymin = -1.5,
xmin = -3.5,
ymax = 3.5,
xmax = 5,
xtick = \empty,
extra x ticks = {3.14, 6.28},
xticklabel style = {%
anchor = north east
},
ytick = {-1,0,1,2,3},
axis lines = center,
xlabel = $x$,
ylabel = $y$,
domain = -3.5:4.8,
restrict y to domain = -1.5:5,
samples = 200,
axis line style = thick,
]
\addplot [thick] {1/(x^2)};
\addplot [black, thick] {1/(x^4)};
\addplot [black, thick] {1/(x^6)};
\node[below right] at (axis cs: 0, 0) {$O$};
\end{axis}
\end{tikzpicture}
\end{document}
得出的结果是:
附注:如果您domain
在环境选项中声明了一个键,那么除非它不同,否则axis
在选项中再次声明它是没有用的。\addplot