通过打破领域来改进 tikzpicture pgfplot

通过打破领域来改进 tikzpicture pgfplot

我正在尝试改善这个数字:

tikz图片

\documentclass{standalone}
\begin{document}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{tikzpicture}
  \begin{axis} [axis lines=center, height=46mm, width=120mm, ymin = 0.8499]
    \addplot [domain=0:1, samples=3333, thick] { 1-(1-x)^floor(2/x) };
  \end{axis}
\end{tikzpicture}
\end{document}

我想

  • 使曲线不连续:当前向下的线条是纯粹的人工制品
  • 避免 x=0.1 附近不存在的过渡
  • 如果可能的话,让它更快。我准备做一个 x<1/30 左右的黑色三角形。

我认为使用显式循环在范围 ]1/(n+1),1/n[ 内绘制多条曲线是可行的方法;但是如何做呢?

答案1

也许是这样的?这不是很快,但你可以减少样本或\foreach500 的限制。

\documentclass{standalone}
\usepackage   {pgfplots}
\pgfplotsset  {compat=1.17}

\begin{document}
\begin{tikzpicture}[line cap=round]
\begin{axis} [axis lines=center, height=45mm, width=120mm, xmin=0, ymin=0.8499]
  \foreach\i in {2,...,500}
  {%
    \addplot[domain={2.001/(\i+1)}:{2/\i}, samples=11,smooth] {1-(1-\x)^floor(2/\x)};
  }
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

这只是为了表明可以在单个图中引入跳跃:

\documentclass[tikz, border=1 cm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
  \begin{axis} [axis lines=center, height=46mm, width=120mm, ymin = 0.8499]
    \addplot [
    domain=0:1,
    samples=3333,
    thick, 
    unbounded coords=jump, line join=bevel,
    x filter/.expression={
        x>0.08 && floor(2/x)+0.01/x>2/x ? nan : x}
                ] { 1-(1-x)^floor(2/x) };   
  \end{axis}
\end{tikzpicture}
\end{document}

图形

相关内容