Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
Drexel University or The Math Forum.



Re: making a Module or Column that will print lines interspersed with plots
Posted:
Feb 3, 2013 8:20 PM


This sort of thing has been asked about and answered in this newsgroup many times since Mathematica 6 appeared. The magic cure is to wrap each graphic with Print:
macro := Module[{j}, Print["something"]; Print[plota]; Print["something else"]; Print[plotb] ]
(Prettyprinting there just for structural clarity.)
And since you define "macro" with SetDelayed ( := ), there's no need for the semicolon you have terminating the whole piece of code.
Explanation: in Mathematica <= 5, the appearance of a graphic display was a sideeffect; in Mathematica >= 6, the graphic display is the direct output as result. This implies that if you have some graphic object plotObject and use it in the form "plotObject;" with a trailing semicolon, that just as with any other Mathematica expression, this suppresses the output. Hence when you are using a semicolon to separate the component expressions of a compound expression  as you are doing inside a Module  then you must do something to counteract the effect of such a trailing semicolon. And Print does that.
On Feb 3, 2013, at 2:46 AM, Bruce Shore <bwshore@me.com> wrote:
> I run Mathematica 7. I have some legacy notebooks, from Mathematica 5, in which there were Modules such as > > macro :=Module[{j}, > Print["something"]; > plota; > Print["something else"]; > plotb > ]; > > where plota and plotb were plots. Now with Mathematica 7 the semicolons prevent the plots from showing up. Show[plota]; has the same problem. The semicolons, which are needed in a Module, prevent the plotting. I have tried using a Column or a Graphics column, > > macro:=Column[{ > Print["something"], > plota, > Print["something else"], > plotb > }] > > and this does the printing and the plotting, but all the printing comes at the beginning and all the plots come after that. I really want the printing to come in between the plots, in the order that I show them. How can I do this? > > > >  > Bruce Shore > bwshore@me.com > (925) 455 0627 >  > > >
 Murray Eisenberg murray@math.umass.edu Mathematics & Statistics Dept. Lederle Graduate Research Tower phone 413 5491020 (H) University of Massachusetts 413 5452838 (W) 710 North Pleasant Street fax 413 5451801 Amherst, MA 010039305



