很简单的办法参考自: https://ask.latexstudio.net/ask/question/8198.html
对于这种分段函数,直接使用tikz用直线绘制即可,你甚至可以很方便的控制颜色,线条样式、粗细等特征:
\documentclass[tikz,border=5pt]{standalone}
\usepackage[fontset=fandol]{ctex}
\usepackage[osf]{libertine} % 我喜欢的一款字体
\begin{document}
\begin{tikzpicture}[
line cap=round,
every node/.style={black}
]
\draw[-latex] (0,0) -- (6,0) node[below]{t(h)};
\draw[-latex] (0,0) -- (0,6) node[right]{s(km)};
\node[below left] {0};
\foreach \i in {1,...,5}{
\draw(0,\i) node[left] {\inteval{10*\i}} -- ++(.2,0);
\draw(\i,0) node[below] {\inteval{\i}} -- ++(0,.2);
}
\draw[magenta,thick] (0,0)
-- (1,3) node[left] {A}
-- (1.5,3) node[right] {B}
-- (2,5) node[above left=-1pt] {C}
-- (2.75,5) node[above right=-1pt] {D}
-- (5,0) node[above right=-1pt] {E}
;
\draw[cyan,dashed,semithick] (0,5)
-- (.5,5) node[above] {G}
-- (3,0) node[above right] {H}
;
\draw[cyan,dashed,semithick] (5.75,5.25) -- ++(-1,0) node[left,anchor=east] {小聪};
\draw[magenta,thick] (5.75,4.5) -- ++(-1,0) node[left,anchor=east] {小慧};
\end{tikzpicture}
\end{document}
当然,这里有个小难点是如何恰好让「B」点相交,我是做了一些斜率的预计算。放轻松,每一行命令的功能都是比较简单的,你可以注释某行代码再编编译看看结果,相信学会这种绘制并不算太难~
Happy TikZing!