如何修复使用 \pgfplots@@environment@axis 扫描时错误维度过大或文件结束的问题?

如何修复使用 \pgfplots@@environment@axis 扫描时错误维度过大或文件结束的问题?

我正在尝试绘图$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

相关内容