如何通过函数计算“额外 y 刻度”值而不是给出固定值

如何通过函数计算“额外 y 刻度”值而不是给出固定值

代码如下:

\documentclass[border=2pt]{standalone}

\usepackage{pgfplots}

\begin{document}

\tikzset{
    declare function={
        func(\x)= \x*\x;
    }
}

\begin{tikzpicture}
\def \xmin {-3}
\def \xmax {3}
\begin{axis}[
    xmin={\xmin}, xmax={\xmax},
    extra y ticks={9},
    extra y tick labels={$c$}]
\addplot [samples=100,domain={\xmin}:{\xmax}] {func(\x)};
\end{axis}
\end{tikzpicture}
\end{document}

结果

我添加了extra y ticks={9},但我真正想要的是添加extra y ticks={func(\xmin)},这样当值发生变化时,额外的 y 刻度标签就可以放在正确的位置\xmin。我该如何编写代码来extra y ticks通过函数计算值而不是给出固定值?谢谢!

答案1

CW 来自评论:

将计算设置为 PGF 数学宏并使用该宏作为extra y ticks设置:

\documentclass[border=2pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}

\begin{document}

\tikzset{
    declare function={
        func(\x)= \x*\x;
    }
}

\begin{tikzpicture}
\def \xmin {-3}
\def \xmax {3}
\pgfmathsetmacro\myextratick{func(\xmin)}
\begin{axis}[
    xmin={\xmin}, xmax={\xmax},
    extra y ticks={\myextratick},
    extra y tick labels={$c$}]
\addplot [samples=100,domain={\xmin}:{\xmax}] {func(\x)};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容