我如何绘制函数
$f(x) = \frac{732x - 228}{19}
何时x≤4
和\frac{120x^2+122x - 38}{19}
何时x>4
。我在 latex 中使用了以下代码
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{holdot/.style={color=blue,fill=white,only marks,mark=*}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
xlabel={$x$},
ylabel={$y$},
xmin=1, xmax=10,
ymin=5, ymax=700,
]
\addplot[domain=1:4,blue]{\frac{732x-228}{19}};
\addplot[domain=4:10,blue]{\frac{120x^2+122x - 38}{19}};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
您需要以正确的语法输入函数。 \frac
是用于排版分数的命令。对于 中的函数,pgfplots
您用 写乘法*
,用 写除法/
。因此,您的第一个函数变为:
(732*x-228)/19
使用的解析器来自pgf
,因此请参阅pgf
手册以了解更多详细信息以及可以使用哪些函数。请注意,您无需加载,tikz
因为pgfplots
它会为您加载。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{holdot/.style={color=blue,fill=white,only marks,mark=*}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
xlabel={$x$},
ylabel={$y$},
xmin=1, xmax=10,
ymin=5, ymax=700,
]
\addplot[domain=1:4,blue]{(732*x-228)/19};
\addplot[domain=4:10,blue]{(120*x^2+122*x - 38)/19};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
另一种解决方案是使用分段函数,使用逻辑来定义它们的范围。x<=1
当域在 x 中小于或等于 1 时,逻辑将计算为 1,当域大于 1 时,逻辑将计算为 0。因此,您可以将函数乘以逻辑,使值等于其域中的函数值,而域外的值等于 0。然后,您可以将函数叠加。
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{holdot/.style={color=blue,fill=white,only marks,mark=*}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
xlabel={$x$},
ylabel={$y$},
xmin=1, xmax=10,
ymin=5, ymax=700,
]
\addplot[domain=1:10,blue]
{
(x<=4) * (732*x - 228)/19 +
(x>4) * (120*x^2 + 122*x - 38)/19
};
\end{axis}
\end{tikzpicture}
\end{document}
虽然这个解决方案有点晚了,但它也有一些额外的好处。例如,你只需要使用一个图来创建它,如果需要的话,这可以简化图例输入。另一个好处或缺点是,根据你想要的结果,函数将通过不连续点上的垂直线连接起来。
答案3
\frac{...}{...}
是用于编写方程式的语法,对于数学计算,您应该使用它*
来进行乘法、/
除法和^
指数:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{holdot/.style={color=blue,fill=white,only marks,mark=*}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
xlabel={$x$},
ylabel={$y$},
xmin=1, xmax=10,
ymin=5, ymax=700,
]
\addplot[domain=1:4,blue]{(732*x - 228)/19}; % <---
\addplot[domain=4:10,blue]{(120*x^2 + 122*x - 38)/19}; % <---
\end{axis}
\end{tikzpicture}
\end{document}