PGFPlots 渲染出斑点曲线 - 不平滑

PGFPlots 渲染出斑点曲线 - 不平滑

我有以下代码,它将图形渲染为“斑点状”(缺乏更好的词):

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[danish]{babel}
\usepackage{graphicx}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}


\begin{document}
\begin{figure}
\centering
    \begin{tikzpicture}
        \begin{axis}[
            title=Hyperbolsk funktion,
            xlabel={$x$},
            ylabel={$y$},
            xmin=-5,    xmax=5,
            ymin=-5,    ymax=5,
            xtick={-1,0,1},
            ytick={-1,0,1},
            axis line style={->},
            ymajorgrids=true,
            xmajorgrids=true,
            grid style=dashed,
            grid style=thin,
            grid style=black,
            legend pos=south east
        ]
            \addplot[color=blue,domain=-5:5,smooth]{sinh(x)};
            \addlegendentry{f(x)=sinh(x)}
            \addplot[color=red,domain=-5:5]{cosh(x)};
            \addlegendentry{f(x)=cosh(x)}
            \addplot[color=green,domain=-5:5]{tanh(x)};
            \addlegendentry{f(x)=tanh(x)}
        \end{axis}
    \end{tikzpicture}
\end{figure}
\end{document}

我希望此代码输出平滑的曲线,但它输出以下内容: 在此处输入图片描述

对你的帮助表示感谢。

答案1

您需要在方括号内将“samples=xxx”添加到 \addplot 行中。这样您就可以选择要采集的样本数量,样本数量越多,曲线越平滑,但编译速度越慢。对于大多数曲线来说,100 应该足够了。如果不添加此项,它将使用默认的样本数量,从而产生较少的“弯曲”曲线。

如果你愿意的话,可以采用更简单的方法全部要使样本数量相同,请将其添加\pgfplotsset{samples=xxx}到前导码中,将默认值设置为“xxx”。

\begin{figure}
\centering
    \begin{tikzpicture}
        \begin{axis}[
            title=Hyperbolsk funktion,
            xlabel={$x$},
            ylabel={$y$},
            xmin=-5,    xmax=5,
            ymin=-5,    ymax=5,
            xtick={-1,0,1},
            ytick={-1,0,1},
            axis line style={->},
            ymajorgrids=true,
            xmajorgrids=true,
            grid style=dashed,
            grid style=thin,
            grid style=black,
            legend pos=south east
        ]
            \addplot[color=blue,domain=-5:5,smooth, samples=100]{sinh(x)};//Note the change here
            \addlegendentry{f(x)=sinh(x)}
            \addplot[color=red,domain=-5:5, samples=100]{cosh(x)}; //Note the change
            \addlegendentry{f(x)=cosh(x)}
            \addplot[color=green,domain=-5:5, samples=100]{tanh(x)}; //Note the change
            \addlegendentry{f(x)=tanh(x)}
        \end{axis}
    \end{tikzpicture}
\end{figure}

相关内容