我是 LaTeX 新手,正在尝试输入一些旧的微分方程笔记。我似乎唯一遇到麻烦的部分是将多个函数绘制到单个图形上。例如,解的系列:y=2e^x
,,,。我和一位物理学教授交谈,他建议我使用y=e^x
TikZ或 pfgplots。你会推荐哪个程序吗?y=e^-x
y=2e^-x
答案1
使用 pgfplots.\begin{axis}[options]...\addplot \end{axis}
是必需的。
代码
\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=-4:4, samples=100,grid=major,
restrict y to domain=0:4,xlabel=$x$,ylabel=$y(x)$, legend pos=north west]
\addplot [color=red] {2*exp(x)};
\addplot [color=green] {exp(x)};
\addplot [color=purple] {exp(-x)};
\addplot [color=blue] {2*exp(-x)};
\legend{$2e^x$, $e^x$, $e^{-x}$, $2e^{-x}$}
\end{axis}
\end{tikzpicture}
\end{document}
答案2
使用 PSTricks。按顺序进行编译latex-dvips-ps2pdf
。
\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-plot}
\psset
{
algebraic,
plotpoints=1000,
yunit=.5,
}
\begin{document}
\begin{pspicture}(-5,-1)(6,24)
\psaxes[linecolor=gray,ticksize=4pt 0,Dy=2]{->}(0,0)(-5,-1)(5.5,23.5)[$x$,0][$y$,90]
\psset{yMaxValue=22,linewidth=2pt}
\foreach \y/\c/\i/\f in
{
2*Euler^x/red/2/2e^x,
Euler^x/green/4/e^x,
Euler^(-x)/blue/6/e^{-x},
2*Euler^(-x)/magenta/8/2e^{-x}
}
{
\psset{linecolor=\c}
\psplot{-5}{5}{\y}
\psline(3,\i)(4,\i)
\uput[0](4,\i){\textcolor{\c}{\large$y=\f$}}
}% important percent sign
\end{pspicture}
\end{document}
重要笔记
尽管 PSTricks 无法pdflatex
直接使用,但这实际上并没有困扰我们,因为敏捷用户(采用最佳实践范式“关注点分离”)知道图表应该与文本内容分开。这意味着每个图表都应该放在一个单独的、独立的但可编译的输入文件中。对于 PSTricks,此图表的输入文件必须按latex-dvips-ps2pdf
顺序编译。它的产物是 PDF 格式的图表,可用于pdflatex
编译主输入文件(即包含文本文档的输入文件)。这有意义吗?
答案3
使用 TikZ:
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\begin{document}
\tikz[yscale=0.5]{
\draw [help lines,xstep=0.5cm] (0,0) grid (3,15);
\draw [red,thick,->] (0,0) plot [domain=0:2] (\x,2*e^\x);
\draw [blue,thick,->] (0,0) plot [domain=0:2.7] (\x,e^\x);
\draw [->] (0,0) -- (3.5,0) ;
\draw [->] (0,0) -- (0,15.5) ;
\node [fill,red] at (4,7.5) {};
\node at (4.85,7.5) {$y=2e^x$};
\node [fill,blue] at (4,6.5) {};
\node at (4.75,6.5) {$y=e^x$};
\foreach \x in {0,...,15}{\node [left] at (0,\x) {\tiny \x};}
\foreach \y in {0,0.5,...,3}{\node [below] at (\y,0) {\tiny \y};}
}
\end{document}