我有一张包含三个不同部分的图表。虽然我设法以连续的方式绘制了前两个部分,但我无法正确获取第三个部分的方向。该图是加速、恒定和减速运动期间覆盖的距离。理想情况下,图表的最后一部分(减速运动)应以平滑连续的方式从 t = 7 开始并在 t = 11 结束,即指向上方。我做错了什么?有没有更好/更简单的方法来绘制这三个部分?
平均能量损失
\documentclass[11pt]{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{width=5cm,compat=1.17}
\begin{document}
\begin{tikzpicture}%[baseline,trim axis left]
\begin{axis}[xmin=0,ylabel={Distance (m)},xlabel={Time (sec)},grid=major]
\addplot [red,mark=*,only marks] coordinates {
(0,0)
(11,540)
};
\addplot [red,mark=*] coordinates {
(6,270)
(7,360)
};
% speed is constant between 6 and 7, a =0
\addplot [domain=0:6,red]{7.5*x*x} ;
% s = at^{2}/2; a = 15 m/s^{2}
\addplot [domain=7:11, red]{(90*x+(-11.25*x*x)+360} ;
% s = s_{0} + v_{0}t + at^{2}/2; a = -22.5 m/s^{2}, v = 90m/s
% added 360 so that it starts from where it left, initial value
\end{axis}
\end{tikzpicture}
\end{document}
答案1
您只需在第三部分中将时间减相 7 秒。因此更改x
将x-7
导致以下结果。
正如您所注意到的,我添加了siunitx
(v2020)包来管理轴中的单位。
\documentclass[11pt]{article}
%\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{siunitx} % SI units
\pgfplotsset{width=5cm,compat=1.17}
\begin{document}
\begin{tikzpicture}%[baseline,trim axis left]
\begin{axis}[xmin=0,ylabel={Distance (\si{\meter})},xlabel={Time (\si{\second})},grid=major]
\addplot [red,mark=*,only marks] coordinates {(0,0)
(11,540)
};
\addplot [red,mark=*] coordinates {
(6,270)
(7,360)
};
% speed is constant between 6 and 7, a =0
\addplot [domain=0:6,red]{7.5*x*x} ;
% s = at^{2}/2; a = 15 m/s^{2}
\addplot [domain=7:11, red]{(90*(x-7)-11.25*(x-7)*(x-7)+360)} ; % changed x for x-7
% s = s_{0} + v_{0}t + at^{2}/2; a = -22.5 m/s^{2}, v = 90m/s
% added 360 so that it starts from where it left, initial value
% if you plot the fist 4 seconds of the original function (uncomment the following):
%\addplot [blue, domain=0:4]{(90*x)-11.25*x*x+360)} ;
\end{axis}
\end{tikzpicture}
\end{document}
如果您想看得更清楚,只需取消注释我代码中绘制(蓝色)第三部分前 4 秒的最后一行。这是您的原始代码,仅更改了域。您将得到以下内容: