Softsign 导数 1/(1+abs(x))^2 在 2009 latexlive 版本 tikz、pgfplots 中无法正确绘制

Softsign 导数 1/(1+abs(x))^2 在 2009 latexlive 版本 tikz、pgfplots 中无法正确绘制

我想在 tikz 中绘制 1/(1+abs(x))^2。在家里,我安装了新版 latexlive,一切看起来都很好。在工作中,我没有新版 latex,因为 Ubuntu 12.04 的存储库中仍然包含 2009 年的旧版本。使用旧版本时,图表在 y 轴周围有一个“凸起”。

有谁知道解决方法吗?

\documentclass{paper}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}
            \addplot[black, smooth] {1/(1+abs(x))^2};
         \end{axis}
    \end{tikzpicture}
 \end{document}

虫子的图片

答案1

请参阅下面更新问题的答案,其中1/(1+abs(x))^2包括旧安装的解决方法。

1/(1-abs(x)^2

三种变体:

  1. 未修改的示例:曲线的形式具有选项的人工制品smooth

  2. 该范围仅限于仔细观察点 (0,1)。

  3. 规模更大。

评论:

  • 除了选项smooth,还可以增加采样率。选项的默认值为sample25。请参阅percusse 的评论. 缺点是,运行时间和文件大小会随着采样率的提高而增加。

  • 当 为偶数值时sample,对称性会丧失,右峰会变小。参见杰克的评论。因此下面的例子使用奇数值。

  • 限制 y 域有助于避免! Dimension too large错误。另请参阅percusse 的评论

  • 由于 y 域不受限制,因此示例利用ymax切断峰值而不是闭合峰值。

\listfiles
\documentclass{article}
\usepackage[a3paper]{geometry}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}
      \addplot[black, smooth] {1/(1-abs(x))^2};
    \end{axis}
  \end{tikzpicture}

  \begin{tikzpicture}
    \begin{axis}[samples=1001, restrict y to domain=0:6, ymax=5]
      \addplot[black] {1/(1-abs(x))^2};
    \end{axis}
  \end{tikzpicture}

  \begin{tikzpicture}
    \begin{axis}[samples=1001, restrict y to domain=0:1500, ymax=1000]
      \addplot[black] {1/(1-abs(x))^2};
    \end{axis}
  \end{tikzpicture}

\end{document}

结果

1/(1+abs(x))^2

以下示例显示了未修改选项 的图smooth。它再次表明,对于具有尖角的函数,该选项smooth不是最佳选择。下面的版本使用了更高的采样率,但没有使用选项smooth

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}
      \addplot[black, smooth] {1/(1+abs(x))^2};
    \end{axis}
  \end{tikzpicture}

  \begin{tikzpicture}
    \begin{axis}[samples=1001]
      \addplot[black] {1/(1+abs(x))^2};
    \end{axis}
  \end{tikzpicture}
\end{document}

结果

旧安装的解决方法

  • 更新 TeX 安装和软件包。有时这是不可能的或不需要的。
  • 可以尝试一下,更新版本是否能pgfplots解决问题。

    1. 创建一个空目录并将 TeX 测试文件放在那里。
    2. 下载pgfplots.tds.zip
    3. 解压它但不包含临时目录中的目录:

      $ unzip -j pgfplots.tds.zip
      
    4. pdflatex在 TeX 测试文件上运行。

  • 如果上一步成功,pgfplots.tds.zip则可以安装在本地或主texmf树中。

  • 否则

    1. 创建一个具有正确字体和字体大小的独立文件,第一面有问题的图没有页眉和页脚,例如:

      \documentclass{article}
      \usepackage{tikz}
      \usepackage{pgfplots}
      \pagestyle{empty}
      \begin{document}
        \begin{tikzpicture}...\end{tikzpicture}
      \end{document}
      
    2. 然后转到另一台安装了最新 TeX 的计算机并生成 PDF 文件。(或者朋友可以帮你做这件事。)

    3. pdfcrop例如,用 裁剪边缘。

    4. 裁剪后的图像包含\includegraphics在原始文档中。

相关内容