MathGroup Archive 2001

[Date Index] [Thread Index] [Author Index]

Search the Archive

AW: LogPlot/Plot-Identity

-----Ursprüngliche Nachricht-----
Von: bernd at [mailto:bernd at]
Gesendet: Donnerstag, 1. Februar 2001 09:00
An: mathgroup at
Betreff: [mg27041] LogPlot/Plot-Identity

Dear group,

I am trying to plot several plots in one. This poses no diffuculties.
But LogPlot seems to behave differently with regard to $DisplayFunction.

I have a simple example:

Show[Block[{$DisplayFunction = Identity}, Plot[Exp[3 t], {t, 0, 5}]]]
This just shows the graphic. However, in

Show[Block[{$DisplayFunction = Identity}, LogPlot[Exp[3 t], {t, 0, 5}]]]

The $DisplayFunction remains Identity even with Show, thus no plot is
produced in case of LogPlot.  Can someone explain this difference
between Plot and LogPlot?


Dear Bernd,

although this is folklore recommended procedure, it has to be regarded with
suspicion. You have to look at what you get:

g1 = Block[{$DisplayFunction = Identity}, Plot[Exp[3 t], {t, 0, 5}]]

Options[g1, DisplayFunction]
{DisplayFunction :> $DisplayFunction}

So here in the result all is fine, when you execute


you'll use the value of $Display function in the execution environment of
But for

g2 = Block[{$DisplayFunction = Identity}, LogPlot[Exp[3 t], {t, 0, 5}]]

Options[g2, DisplayFunction]
{DisplayFunction -> Identity, DisplayFunction :> Identity}

You see that the temporary value of $DisplayFunction of Block has been
smuggled into the graphics object. I cannot tell this a bug of LogPlot (and
similar routines, and if you write your own plotting routines you'll find
out it's not easy to prevent all references to the unevaluated
$DislayFunction). This here (is a more correct alternative, I think):

g2a = Block[{$DisplayFunction}, Identity @@ LogPlot[Exp[3 t], {t, 0, 5}]]

This construct keeps all references to $DisplayFunction as unevaluated, and
applying Identity to the final result prevents the display.

Options[g2a, DisplayFunction]
{DisplayFunction -> (Display[$Display, #1] &), DisplayFunction :> Identity}


It's interesting to compare that with straight plotting:

g2x = LogPlot[Exp[3 t], {t, 0, 5}]

Options[g2x, DisplayFunction]
{DisplayFunction -> (Display[$Display, #1] &), DisplayFunction :> Identity}

So we had got the same, the right say, graphics object! (witout displaying

-- Hartmut Wolf

  • Prev by Date: Parametric Plot Again
  • Next by Date: Re: Getting parameters from Fit[]..
  • Previous by thread: Re: Parametric Plot Again
  • Next by thread: RE: AW: LogPlot/Plot-Identity