我想在 LaTeX 文档中绘制一个函数。通常我使用 Mathematica、Matlab 或 Root。此时我想使用pgfplots
以使我的文档保持完整的 LaTeX 布局。问题是它pgfplots
不能产生与 Mathematica 完全相同的图,更不用说 中发生的奇怪事情了y-axis
。
我的代码是
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel=$x$,
ylabel={$d\sigma$}
]
\addplot[blue,domain=0:pi]{1-sin(x/2)^2};
\end{axis}
\end{tikzpicture}
\end{document}
我的输出是
而 Mathematica 给出
对此有什么想法吗?
答案1
您的代码有两个问题。首先,域1:2*pi
表示区间 [1, 2pi]。在 Mathematica 中,您要求区间 [0,pi]。因此,替换1:2*pi
为0:pi
应该会给出正确的绘制区间。
第二个问题是该sin
函数需要以度为单位的参数,而不是弧度。要将弧度转换为度,可以使用该deg
函数。sin(x/2)
用替换sin(deg(x)/2)
即可。
可以通过设置适当的选项手动覆盖最小/最大 x 和 y 值并删除框架。以下代码生成的图与您的 Mathematica 图大致相同:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0, xmax=3.4,
ymin=0, ymax=1.1,
axis lines=left,
xlabel=$x$,
ylabel={$d\sigma$}
]
\addplot[blue,domain=0:pi]{1-sin(deg(x)/2)^2};
\end{axis}
\end{tikzpicture}
\end{document}