评估一个函数并将其赋值给一个常量,作为Tikzpgfplots中的刻度线。

问题描述 投票:2回答:1

我正在定义一些函数来使用pgfplots绘制,并且已经成功了。现在我想在使用这些函数(下面的lbound)评估的点添加一个y tick。然而,我似乎不能将lbound作为一个常数来使用。这是为了标记水平图击中y轴的点。我应该怎么做呢?

\begin{tikzpicture}[
    declare function={
        tmin = 0;
        tmax = 1;
        C(\x) = (\x)^2;
        Cinv(\x) = (\x)^(1/2);
        ell(\theta,\tau,\K) = 1 - Cinv( (- (\tau * \theta) / (tmax - tmin) + \K) );
        lbound = ell(1, 0.8, C(1) + 0.8 * tmin / (tmax - tmin));
  }
    ]

    \begin{axis}[
            ytick={0,1},
            yticklabels={$0$,$1$}
            ]
        \addplot[dashed, thick, domain=0:1]{ell(1, 0.8, C(1) + 0.8 * tmin / (tmax - tmin))};
    \end{axis}
\end{tikzpicture}
latex tikz pgf
1个回答
1
投票

我可能误解了这个问题,但有一种理解方式是,你想这样做。

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}[
    declare function={
        tmin = 0;
        tmax = 1;
        C(\x) = (\x)^2;
        Cinv(\x) = (\x)^(1/2);
        ell(\theta,\tau,\K) = 1 - Cinv( (- (\tau * \theta) / (tmax - tmin) + \K) );
        lbound = ell(1, 0.8, C(1) + 0.8 * tmin / (tmax - tmin));
  }
    ]

    \begin{axis}[
            ytick={0,lbound},
            yticklabels={$0$,$\ell_\mathrm{bound}$}
            ]
        \addplot[dashed, thick, domain=0:1]{ell(1, 0.8, C(1) + 0.8 * tmin / (tmax - tmin))};
    \end{axis}
\end{tikzpicture}
\end{document}

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.