This work began at Set PlotLabel length.
slopeExplorer[fn_, {x_, xmin_, xmax_}, {y_, ymin_, ymax_}] :=
DynamicModule[{f, pta, ptb},
f[t_] = fn /. x -> t;
Manipulate[
pta = {a, f[a]};
ptb = {a, f'[a]};
Show[
Plot[{Tooltip[f[x]], Tooltip[f[a] + f'[a] (x - a)]}, {x, xmin,
xmax},
PlotStyle -> {Directive[Blue], Directive[Orange]},
PlotRange -> {ymin, ymax},
PlotLabel ->
Pane["Slope of tangent line = " <>
ToString[PaddedForm[N[f'[a]], {6, 2}]] <> "\n", 200]],
Plot[Tooltip[f'[x]], {x, xmin - 0.01, a},
PlotRange -> All,
PlotStyle -> Directive[Red, Dashed]],
Graphics[{
Gray, Line[{pta, ptb}],
Red, PointSize[Medium], Tooltip[Point[pta], pta],
Blue, Tooltip[Point[ptb], ptb]
}]
], {{a, xmin, "x"}, xmin, xmax, Appearance -> "Labeled"}
]
]
The following example seems to work perfectly.
slopeExplorer[2 x^3 - 3 x^2 - 36 x, {x, -5, 6}, {y, -150, 150}]
Moving the slider back and forth works smoothly. No hesitations.
Same thing with this example:
slopeExplorer[6/(1 + x^2), {x, -5, 5}, {y, -10, 10}]
No problems.
However, this example experiences difficulty:
slopeExplorer[(3 + x)/(1 - 3 x), {x, -5, 3}, {y, -10, 10}]
All is well and smooth and the slider moves to the right, but when I get near the vertical asymptote at $x=1/3$, problems start.
- Slider seems to lock up.
- A small spinning colored wheel starts up, then disappears.
- The cell bracket goes black for a moment.
Then all stops and I can select slider, but it starts up again.
Might have something to do with something happening at the vertical asymptote, or it just might ben my limited understanding of avoiding this type of difficulty in Manipulate procedures.
Any thoughts?

Manipulateand not just create a singleDynamicModule(devoid ofManipulate)? – Mike Honeychurch Jan 04 '16 at 02:26I was mostly concerned about what would be the simplest way for students to handle this problem who are brand new to Mathematica.I think you should stick to Manipulate only. This is much simpler for students who are new to Mathematica, rather than start with DynamicModule. Manipulate simplifies many things and it is a simple framework to start with. I've had a course in physics, where many students never used M before, and many struggled just with basic plotting and such. I can't imagine having to start with DynamicModule and Manipulate inside it on top of that. – Nasser Jan 04 '16 at 04:44