PgfPlots 垂直渐近线被缩短

PgfPlots 垂直渐近线被缩短

以下 MWE

\documentclass{standalone}
\usepackage{pgfplots}

\begin{document}

    \begin{tikzpicture}[scale=0.75]
        \begin{axis}[ylabel=Y-Axis, xlabel=X-Axis, xmin=0.000, xmax=0.9, ymin=0, ymax=12, clip=false, yticklabel pos=right, ylabel near ticks]
        \pgfplotsinvokeforeach{2,3,5,10}{
            \addplot[mark=none, domain=0.000:0.9, thick] {-ln(x/#1^2)/ln(#1)}; %Varying R values
        }
        \end{axis}
    \end{tikzpicture}

\end{document}

得到以下图表

图表中的绘图未到达 X 轴

从数学上来说,当这些线到达盒子左侧的 x=0 时,它们应该延伸到无穷大。

让这些线靠近盒子边缘或以其他方式填充它们以使它们不被切断的“最佳方法”是什么?

答案1

您将需要使用该samples选项来addplot增加数量:

\addplot[mark=none, domain=0.000:0.9, thick,samples=40] {-ln(x/#1^2)/ln(#1)} node [pos=0,left] {$R=#1$}; %Varying R values

40 只是一个猜测。

编辑,实际上的样本值500可能更符合您的要求,因为40它不会给您带来任何不同的东西。

使用样本值,500您将获得以下结果:

使用 <code>sample=500</code> 解决方案进行绘图

编辑 2:按照 @Jake 的建议,您确实可以使用samples at选项来addplot指定 x 值中需要更多定义/样本的间隔。在此特定情况下,samples at={0.001,0.002,...,0.01,0.02,...,0.9}为您提供 0.001 和 0.01 之间每 0.001 的一个样本以及 0.01 和 0.9 之间每 0.01 的一个样本。这当然是手动设置,必须适应您的不同图,但在这种情况下,它特别有效。此外,该smooth选项可以消除图中的大部分粗糙之处:

使用 <code>sample at={}, smooth</code> 解决方案进行绘图

该解决方案的优点samples=500是它在各个图中都相当通用,但它确实需要更多的计算,这会增加编译时间,但如果你绘制的事物在整个 x 范围内变化很大(tan(x)例如),它可能是最好的解决方案。

相关内容