Re: making a Module or Column that will print lines interspersed with plots
- To: mathgroup at smc.vnet.net
- Subject: [mg129673] Re: making a Module or Column that will print lines interspersed with plots
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Sun, 3 Feb 2013 20:21:36 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
On 2/3/13 at 2:46 AM, bwshore at me.com (Bruce Shore) 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. Your comments above suggest you see the purpose of a semicolon in Mathematica as being primarily a means for suppressing output. That isn't true. The purpose of a semicolon is to join two expressions to make a single compound expression. When you terminate an expression with a semicolon, what you are really doing is creating a compound expression with the last part being Null. And since the output of any compound expression is simply the output from the last portion, a compound expression ending in Null produces no output. The code above can be made to do what you want by explicitly printing the plots, i.e., macro :=Module[{j}, Print["something"]; Print[plota]; Print["something else"]; Print[plotb]] >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? the code above using Column will work if changed as follows: macro:=Column[{ "something",plota,"something else",plotb}]