如何使用带有数学表达式的 pgfplots 的“axis cs”?

如何使用带有数学表达式的 pgfplots 的“axis cs”?

在环境中,axis我可以使用 来指定一些点axis cs。到目前为止,我只能够使用像 这样的特定坐标1,1。但我想知道如何使用像 这样的数学表达式ln(3),2

以下是一个例子:

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.4}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis equal image,
width=10cm,
axis lines=middle,
axis line style={-latex},
xtick=\empty,
ytick=\empty,
ymin=-2.5, ymax=2.5,
xmin=-3.4,xmax=3.3,
clip =false,
xlabel={$x$},ylabel={$y$},
every axis x label/.append style={anchor=north},
every axis y label/.append style={anchor=east},
]

\foreach \c in {-2,-1,-0.5,0.5,1,2}
  \addplot[domain=-3:3,samples=200,restrict y to domain=-2:2]{ln(\c*x)};

%ln(1*3)1,098612289
\node[anchor=west] at (axis cs:3,1.099) {$c=1$};
%\node[anchor=west] at (axis cs:3,ln(3)) {$c=1$};
\end{axis}
\end{tikzpicture}
\end{document}

目前我正在使用:

%ln(1*3)1,098612289
\node[anchor=west] at (axis cs:3,1.099) {$c=1$};

但我更喜欢一种更自动化的方式

\node[anchor=west] at (axis cs:3,ln(3)) {$c=1$};

答案1

你可以说

\pgfmathlog{3}\let\mylog\pgfmathresult
\node[anchor=west] at (axis cs:3,{\mylog}) {$c=1$};

不完全相同,但我猜测在寻找坐标时进行复杂的计算并不容易。

相关内容