Re: Why don't my plots appear? My 5.2 code no longer works
- To: mathgroup at smc.vnet.net
- Subject: [mg89342] Re: [mg89326] Why don't my plots appear? My 5.2 code no longer works
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Sat, 7 Jun 2008 02:50:40 -0400 (EDT)
- Organization: Mathematics & Statistics, Univ. of Mass./Amherst
- References: <200806061044.GAA24071@smc.vnet.net>
- Reply-to: murray at math.umass.edu
You'll probably get zillions of responses to your question.
The treatment of Plot and related functions has changed with version 6:
the graphic created is no longer a side-effect of evaluating the
function, but rather the actual, direct RESULT of the function. (In
Mathematica 5 and before, the display was a side-effect whereas the
direct result was a -Graphics- object.)
A consequence is that following a Plot with a semi-colon now has EXACTLY
the same effect of following any other command with a semi-colon: it
suppresses the result. More precisely, it produces a Null result, which
by default is not shown in any way.
In general, a semi-colon is used to separate the parts of a compound
expression, for example:
a = 2; Plot[Sin[a x], {x, 0, Pi}]; "Hello, world!" (* NO! *)
has result the string 'Hello, world!. And indeed in Mathematica 6 you
the semi-colon after the Plot expression appears in red to warn you. To
make the plot appear, use Print:
a = 2; Print[Plot[Sin[a x], {x, 0, Pi}]]; "Hello, world!" (* Yes *)
Note this has nothing to do, per se, with Modules -- just compound
expressions in general.
Charlie Brummitt wrote:
> Hello,
> I am running into difficulties with Plot. Some code of mine that worked in
> 5.2 no longer works correctly in 6.0.2.0. Specifically, no plots appear
> whenever Plot (or Plot3D or DensityPlot or ListPlot) is called within a
> function that I have defined.
>
> Here is a closely related question: What does the red semicolon ";" mean at
> the end of "Plot[ ... ];"? Why is it red? In 5.2, placing a semicolon at the
> end of Plot[] allowed me to output a plot in the middle of a computation,
> without halting the computation. Now I can no longer seem to output a plot
> in the middle of a long computation. (I only see the output of Print[]
> commands.) I must be able to see these plots during long computations, like
> I was able to in 5.2.
>
> What's wrong? Can anyone please help?
>
> Thanks,
>
> Charlie
>
>
--
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
- References:
- Why don't my plots appear? My 5.2 code no longer works correctly in 6.0
- From: "Charlie Brummitt" <cbrummitt@wisc.edu>
- Why don't my plots appear? My 5.2 code no longer works correctly in 6.0