答案1
有一个专门的绘图包tikz
,即pgfplots
。其中的一个绘图实现可能是:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=-.7:3.2, ymin=-1, ymax=1,
axis x line=middle, axis y line=middle, ticks=none,
enlarge x limits={rel=0.07}]
\addplot[thick, red, samples=100] {(x*x*(1-x)*(3-x))};
\addplot[green] {(.5)} node[right]{$E$};
\end{axis}
\end{tikzpicture}
\end{document}
您可以将共域限制移动到一个函数,但将它们作为命令的选项\addplot
,但您必须使用该选项
restrict y to domain=-1:1
为了在您的示例中获得正确的截止值,您必须增加样本数量:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=-.7:3.2,
axis x line=middle, axis y line=middle, ticks=none,
enlarge x limits={rel=0.07}]
\addplot[thick, red, samples=5000, restrict y to domain=-1:1] {(x*x*(1-x)*(3-x))};
\addplot[green] {(.5)} node[right]{$E$};
\end{axis}
\end{tikzpicture}
\end{document}
如果要精确控制轴长度,请使用xmin
/ xmax
/ ymin
/ymax
并调整各个图上的域:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-5, xmax=5, ymin=-1.2, ymax=1.2,
axis x line=middle, axis y line=middle, ticks=none]
\addplot[thick, red, samples=5000,
domain=-.7:3.2, restrict y to domain=-1:1] {(x*x*(1-x)*(3-x))};
\addplot[domain=-5:4.2, green] {(.5)} node[right]{$E$};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
\clip
? 环境的目的scope
是使 的效果本地化\clip
。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\def\a{5}
\def\E{2}
\draw[->] (-\a,0) -- (+\a,0);
\draw[->] (0,-\a) -- (0,+\a);
\begin{scope}
\clip (-\a,-\a) rectangle (\a,\E);
\draw[thick, red, samples=100, domain=-.7:3.2] plot ({\x},{ \x*\x*(1-\x)*(3-\x) });
\end{scope}
\draw[thick, green] (-\a,\E) -- (+\a,\E) node[xshift=0.5cm] {$ E $};
\end{tikzpicture}
\end{document}