import graph; size(10cm,0); real[] xpt={-1,.5,2,2.5,4}; real[] ypt={2,-1,2,-2,3}; real xmin=min(xpt)-.5,xmax=max(xpt)+.5; real ymin=min(ypt)-.5,ymax=max(ypt)+.5; marker croix=marker(scale(2)*rotate(45)*cross(4),1bp+red); draw(graph(xpt,ypt,Hermite(monotonic)),croix); void tanghoriz(int k,real lg=1,real ld=lg, pen p=dashed, arrowbar arr=None) { draw(((xpt[k]-lg,ypt[k]))--((xpt[k]+ld,ypt[k])),p,arr); } tanghoriz(1,lg=1.5,p=.5bp+red,Arrows(SimpleHead)); tanghoriz(2); xaxis(Label("$x$",position=EndPoint, align=NE), xmin=xmin,xmax=xmax, Ticks(scale(.7)*Label(align=E), NoZero, Step=1,step=.25,Size=1mm, size=.5mm, pTick=black,ptick=gray), Arrow); yaxis(Label("$y$",position=EndPoint, align=NE), ymin=ymin,ymax=ymax, Ticks(scale(.7)*Label(), NoZero, Step=1,step=.25,Size=1mm, size=.5mm, pTick=black,ptick=gray), Arrow);