使用参数 `\addplot {\py{1+\x}};` 调用 Python 代码

使用参数 `\addplot {\py{1+\x}};` 调用 Python 代码

pythontex包允许我们通过 简单地在 LaTeX 中对 Python 进行求值\py{1+3}。但是,在 中这是不可能的addplot。一个解决方案是将整个包装tikzpicture在替代环境中\pys,用 进行替换!{1+3}4但是,我希望结果依赖于\x,这在该“解决方案”中是不可能的。

像这样,怎样才能用来自 LaTeX 的参数来评估一段 Python 代码呢?

\documentclass{beamer}
\usepackage{pythontex}
\usepackage{pgfplots}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}
      \addplot {\py{1+\x}};
    \end{axis}
  \end{tikzpicture}
\end{document}

谢谢你!

答案1

以下工作:

\documentclass{beamer}
\usepackage{pythontex}
\usepackage{pgfplots}
\pgfmathdeclarefunction{func}{1}{\pys{\pgfmathparse{!{str(1+float('#1'[2:-1])*(-1 if '#1'[0] == '2' else 1))}}}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot {func(x)};
\end{axis}
\end{tikzpicture}
\end{document}

显然,PGFplots 或 Tikz 可以使用形式为的奇怪数字2Y4.1665201e0,其中前两个字母表示1Y如果它为正数,2Y如果它为负数。

也许我需要做点什么\pgfmathfloatvalueof

相关内容