1. 使用虚线点为某一个数字进行说明,还可以做成可交互的文件。

例如
http://demonstrations.wolfram.com/SupplyAndDemand/

Manipulate[ Show[
  Plot[Tooltip[d - .5 q, "demand"], {q, 0, 200}, PlotStyle -> Thick, 
   PlotRange -> {{0, 100}, {0, 100}}, AxesOrigin -> {0, 0}, 
   AxesLabel -> {"quantity", "price"}, 
   Ticks -> {{{0.769 d - 0.769 s, 
       "\!\(\*SuperscriptBox[\(Q\), \(e\)]\)"}}, {{d - .5 (0.769 d - 
           0.769 s), "\!\(\*SuperscriptBox[\(P\), \(e\)]\)"}}}, 
   AspectRatio -> 1],
  Plot[Tooltip[s + .8 q, "supply"], {q, 0, 150}, 
   PlotStyle -> {Thick, Red}],
  Graphics[{Dashed, 
    Line[{{0.769 d - 0.769 s, 0}, {0.769 d - 0.769 s, 
       d - .5 (0.769 d - 0.769 s)}}]}],
  Graphics[{Dashed, 
    Line[{{0, d - .5 (0.769 d - 0.769 s)}, {0.769 d - 0.769 s, 
       d - .5 (0.769 d - 0.769 s)}}]}],
  Graphics[{PointSize[.02], 
    Tooltip[Point[{0.769 d - 0.769 s, d - .5 (0.769 d - 0.769 s)}], 
     "equilibrium"]}], ImageSize -> If[format, 500, {500, 400}], 
  AspectRatio -> If[format, Automatic, .75]], 
 "None" -> {{s, 22, "supply"}, 44, 0, 2}, {{d, 75, "demand"}, 50, 
  100, 2}, {{format, False, "large format"}, {True, False}}, 
 AutorunSequencing -> {1, 2}]

演示:(CDF文件加载较慢,请耐心等待……)

var demoObj = new DEMOEMBED(); demoObj.run(‘SupplyAndDemand’, ”, ‘535’, ‘545’);

 

2. 使用箭头来标注

例如:
http://demonstrations.wolfram.com/BernsteinPolynomials/

Manipulate[
 Module[{ps, f}, If[k > n, k = n]; 
  ps = Table[{Hue[.67, .6, .6], Opacity[.1 (8 + 2 Boole[k == i])], 
     Thickness[0.001 (1 + 4 Boole[k == i])]}, {i, 0, n}];
  f[t_] := Table[Bernstein[i, n, t], {i, 0, n}]; 
  Show[Plot[Evaluate@f[x], {x, 0, 1}, PlotStyle -> ps, 
    PlotPoints -> 25, MaxRecursion -> ControlActive[1, 2], 
    PlotRange -> {0, 1.1}, 
    Filling -> If[fill, {k + 1 -> {Axis, LightGray}}, None], 
    PlotLabel -> 
     Style[Subscript[B, k, n][x] == Bernstein[k, n, x], 14]], 
   Graphics[
    If[n == 0, {}, 
     With[{j = k + .3 Boole[k == 0] - .3 Boole[k == n]}, 
      Arrow[{{.5, 1.1}, {DivZ[j, n], 
         Bernstein[k, n, DivZ[j, n]]}}]]]], 
   Graphics[
    If[env && 
      n != 0, {Part[
       Plot[1/Sqrt[2 \[Pi] n t (1 - t)], {t, 0, 1}, 
        PlotStyle -> {Red, Thickness[0.004], Opacity[.7]}, 
        PlotRange -> All], 1]}, {}]], ImageSize -> 1.2 {450, 300}, 
   ImagePadding -> {{25, 25}, {25, 38}}]],
 {{n, 12, "degree"}, 0, 20, 1, Appearance -> "Labeled"},
 {{k, 5, "\!\(\*SuperscriptBox[\(k\), \(th\)]\)"}, 0, n, 1, 
  Appearance -> "Labeled"}, {{env, True, "show envelope"}, {True, 
   False}, ControlPlacement -> Bottom}, {{fill, True, 
   "show filling"}, {True, False}, ControlPlacement -> Bottom}, 
 SaveDefinitions -> True, ControllerLinking -> False]

效果:(CDF文件加载较慢,请耐心等待……)

var demoObj = new DEMOEMBED(); demoObj.run(‘BernsteinPolynomials’, ”, ‘517’, ‘585’);

 

3 其他方法包括使用 Epilog 结合绘制 Arrow 来手动控制,比如

Plot[{Emin, Emax}, {q, -1, 2.5}, 
 PlotLegends -> 
  Placed[{"\!\(\*SubscriptBox[\(E\), \(min - e\)]\)", 
    "\!\(\*SubscriptBox[\(E\), \(max - e\)]\)"}, {Scaled[{0.1, 
      1}], {-0.7, 6}}], Axes -> True, AxesLabel -> {"q", "E"}, 
 Filling -> {1 -> {2}}, 
 Epilog -> {Black, 
   Text["\!\(\*SubscriptBox[\(q\), \(c\)]\)", {1.7, 2.0}, {-1, 
     1}], {Black, Arrow[{{1.68, 1.75}, {1.55, 1.2}}]}}]

效果:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注