在 LaTeX (overleaf) 中绘制模数图时遇到问题

在 LaTeX (overleaf) 中绘制模数图时遇到问题

我被要求绘制/绘制模函数 f(m) = m^7 modulo 137 的图形。我尝试在 LaTeX 中使用包“pgfplots”按照官方 overleaf 教程中的说明来完成此操作:https://de.overleaf.com/learn/latex/Pgfplots_package#Reference_guide然而这根本不起作用。当我使用上面的函数进行编译时,我的整个文档都会崩溃。我使用的代码与绘制“正常”函数的代码相同:如果我省略“mod 137”,那么绘制效果会非常完美。

\documentclass{article}
\usepackage[margin=0.25in]{geometry}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.9}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    axis lines = left,
    xlabel = \(m\),
    ylabel = {\(f(m)\)},
    xmin=0, xmax=5,
    ymin=0, ymax=100,
]

\addplot [
    domain=0:10, 
    samples=100, 
    color=black,
]
{x^7 \mod 137};
\addlegendentry{\(f(m)\)}.




\end{axis}
\end{tikzpicture}

\end{document}

非常感谢任何形式的帮助!

! Undefined control sequence.
\pgfplots@addplotimpl@expression@yEXPR ->x^7 \mod 
                                                  137
l.20 {x^7 \mod 137};

答案1

\documentclass[border=1 cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    axis lines = left,
    xlabel = \(m\),
    ylabel = {\(f(m)\)},
    xmin=0, xmax=5,
    ymin=0, ymax=150,
]
\addplot[
    domain=0:3.5, 
    samples=1000, 
    y filter/.expression={x>2&&y<30*(x-2)?0:(x>2&&y>137-30*(x-2)?137:y)},
    forget plot, %workaround
    ] {mod(x^7,137)};
\fill (3.5,0) rectangle (5,137);
\addlegendimage{line legend} %workaround
\addlegendentry{\(f(m)\)}
\end{axis}
\end{tikzpicture}
\end{document}

mod(x^7,137) 的图形

相关内容