Re: Re: How to combine Dynamic graphics
- To: mathgroup at smc.vnet.net
- Subject: [mg105570] Re: [mg105541] Re: How to combine Dynamic graphics
- From: John Fultz <jfultz at wolfram.com>
- Date: Wed, 9 Dec 2009 05:44:21 -0500 (EST)
- Reply-to: jfultz at wolfram.com
This is not a counter-example. As you quoted me, I said that Show "doesn't know how to deal with something that has the head Dynamic." But what you passed it were two things with the head Graphics. What's inside the Graphics object is totally irrelevant (so long as it's renderable, of course). Sincerely, John Fultz jfultz at wolfram.com User Interface Group Wolfram Research, Inc. On Tue, 8 Dec 2009 06:43:08 -0500 (EST), Alexei Boulbitch wrote: > From: "John Fultz" <jfultz at wolfram.com> > > > "Show doesn't know how to deal with something that has the head > Dynamic.".... > > Let me give a counter-example. In what follows I show a piece of code > from one of my presentations, and I am much too lazy > to shorten it for the purposes of demonstrating within this discussion. > Please excuse me. Anyway, it contains several definitions > of equations to be drawn that are irrelevant for the present discussion. > However, in the > code part that is entitled "MainPart" you will find the Show statement > wrapped around Dynamic (and also the > DynamicModule wrapped around Show). Everything functions as desired. > Please have a look: > > > g1[x_] := If[x <= 0, (3*x^2)/16, 0]; > g2[x_] := If[x <= 0, x^2/4, 0]; > g3[x_] := 0; > eta2[t_, b_] := If[t - 1 > 0, 0, 2.*Sqrt[-(t - 1)/(b + 0.01)]]; > eta1[t_, b_] := > If[t - 1 >= (3*b^2)/16, 0, > 0.7*(Sqrt[3*Abs[b]]/2 + Sqrt[-(t - 1) + b^2/4])]; > eta[t_, b_] := If[b >= 0, eta2[t, b], eta1[t, b]]; > > point[a_, b_] := Disk[{b, a}, 0.1]; > pl = Plot[{Tooltip[g1[x], "f(\[Eta]\[NotEqual]0)=f(\[Eta]=0)"], > Tooltip[g2[x], > "(\!\(\*SuperscriptBox[\"d\", \"2\"]\)f/\!\(\*SuperscriptBox[\"d\ > \[Eta]\", \"2\"]\)\!\(\*SubscriptBox[\")\", > RowBox[{\"\[Eta]\", \"\[NotEqual]\", \"0\"}]]\)=0"], > Tooltip[g3[x], > "(\!\(\*SuperscriptBox[\"d\", \"2\"]\)f/\!\(\*SuperscriptBox[\"d\ > \[Eta]\", \"2\"]\)\!\(\*SubscriptBox[\")\", > RowBox[{\"\[Eta]\", \"=\", \"0\"}]]\)=0"]}, {x, -4, 2}, > PlotRange -> {{-4, 2}, {-2, 3}}, PlotStyle -> Thick, Axes -> True, > Ticks -> None, AxesLabel -> {\[Beta], \[Alpha]}, > LabelStyle -> Directive[Large], ImageSize -> 350, > Epilog -> {Inset[ > Text[Style["\[Eta]=0", FontSize -> 20]], {1.5, 2.5}], > Inset[Text[ > Style["\[Eta]\[NotEqual]0", FontSize -> 20]], {-1, -1.5}] }, > Filling -> {2 -> {3}}, > PlotLabel -> Style["Phase Diagram", 20, Red, Bold]]; > > > MainPart = > DynamicModule[{pt = {1.7, 2}}, > GraphicsColumn[{Show[{pl, Graphics[Locator[Dynamic[pt]]]}, > ImageSize -> 500], > GraphicsRow[{Dynamic[ > Plot[pt[[2]] x^2/2 + pt[[1]] x^4/4 + x^6/6, {x, -3, 3}, > PlotRange -> {{-4, 4}, {-2, 3}}, Axes -> True, Ticks -> None, > AxesLabel -> {Style[\[Eta], Large, Plain, > FontFamily -> "Symbol"], > Style["f", Large, Italic, FontFamily -> "Times New Roman"]}, > PlotStyle -> {Thick, Blue}, LabelStyle -> Directive[Large], > PlotLabel -> Style["Landau Potential", 20, Red, Bold] (*, > ImageSize->400*)]], > Dynamic[Plot[ > Tooltip[eta[t, pt[[1]]], "\!\(\*SqrtBox[FractionBox[ > RowBox[{ > RowBox[{\"-\", \"\[Beta]\"}], \"+\", SqrtBox[ > RowBox[{SuperscriptBox[\"\[Beta]\", \"2\"], \"-\", > RowBox[{\"4\", \"\[Alpha]\[Gamma]\"}]}]]}], > RowBox[{\"2\", \"\[Gamma]\"}]]]\)"], {t, pt[[2]] + 1, 3.2}, > PlotRange -> {{0, 3}, {0, 2.5}},(*ImageSize->400,*) > PlotStyle -> {Thick, Blue}, Ticks -> None, Axes -> True, > AxesLabel -> {T, \[Eta]}, > PlotLabel -> Style["Order Parameter", 20, Red, Bold], > LabelStyle -> Directive[Large]]]}, ImageSize -> 700, > Spacings -> 70]}, Spacings -> -350]] > > > Regards, Alexei