\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
vardef pi_sixths(expr n) =
save s, f, q; string s, f; numeric q;
s = if n < 0: "-" else: "" fi; q = abs(n);
if q mod 6 = 0:
f = if q > 6: decimal 1/6 q else: "" fi;
elseif q mod 3 = 0:
f = "\frac{" & decimal 1/3 q & "}{2}";
elseif q mod 2 = 0:
f = "\frac{" & decimal 1/2 q & "}{3}";
else:
f = "\frac{" & decimal q & "}{6}";
fi
"$\scriptstyle" & s & f & "\pi$"
enddef;
beginfig(1);
numeric u, pi; u = 50; pi = 3.141592653589793;
path xx, yy;
xx = (3.5 left -- 4 right) scaled u;
yy = (1.2 down -- 1.3 up) scaled u;
path ss, tt, uu;
ss = origin for x=1 upto 360: -- (x, sind(x)) endfor;
tt = origin for x=1 upto 360: -- (x, 1/2 sind(3x)) endfor;
uu = origin for x=1 upto 360:
-- (x, ypart point x of ss + ypart point x of tt)
endfor;
forsuffixes $=ss, tt, uu:
$ := $ shifted 360 left & $;
$ := $ xscaled (pi/180) scaled u;
$ := $ cutbefore yy shifted point 0 of xx
cutafter yy shifted point 1 of xx;
endfor
drawoptions(withcolor 3/4 blue);
draw ss; label.top("$f(x)=\sin(x)$", point 290 of ss);
drawoptions(withcolor 2/3 red);
draw tt; label.bot("$g(x)=\frac12 \sin(3x)$", point 295 of tt);
drawoptions(withcolor 1/4 green);
draw uu; label.urt("$f(x) + g(x)$", point 350 of uu);
drawoptions();
drawarrow xx; label.rt("$x$", point 1 of xx);
drawarrow yy; label.top("$y$", point 1 of yy);