MathGroup Archive 2009

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

Search the Archive

Re: Re: Possible bug in Opacity[] with plotting

  • To: mathgroup at smc.vnet.net
  • Subject: [mg105604] Re: [mg105595] Re: Possible bug in Opacity[] with plotting
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Fri, 11 Dec 2009 04:16:56 -0500 (EST)
  • Reply-to: hanlonr at cox.net

You could also use Directive

Plot[y, {x, 0, 144},
 Filling -> Axis,
 FillingStyle -> Directive[Blue, Opacity[.5]],
 Frame -> True]


Bob Hanlon

---- "Nasser M. Abbasi" <nma at 12000.org> wrote: 

=============

----- Original Message ----- 
From: "Nasser M. Abbasi" <nma at 12000.org>
To: <mathgroup at smc.vnet.net>
Sent: Wednesday, December 09, 2009 7:42 PM
Subject: [mg105604] [mg105595] Possible bug in Opacity[] with plotting function that uses 
UnitStep?


> Version 7 on windows XP sp2.
>
> This is really a strange one, it seems like a "bug", but if not, then what 
> is it?
>
> I have a function defined with UnitStep[]. I plot it using Plot and using 
> Filling->Axis.
>
> The filling works ok across all the plot range even with different 
> FillingStyles for the color.
>
> But when I use Opacity[] to change the filling Style more, then only 
> _part_ of the plot is now affected by the Opacity[]  and the other part is 
> not.
>
> Compare the following 2 plots to see:
>
> y = -400*UnitStep[x - 100.8] + 8*(x - 63.4)*UnitStep[x - 63.4]
>     -8*(x - 43.2)*UnitStep[x - 43.2] + 221.3
>
> Plot[y, {x, 0, 144},
>          Filling -> Axis,
>          FillingStyle -> {Opacity[0.5], Blue},
>          Frame -> True]
>
> Plot[y, {x, 0, 144},
>         Filling -> Axis,
>         FillingStyle -> Blue,
>         Frame -> True]
>
> --Nasser

FYI;

I have found how to do it. The trick is to use  Opacity[.5,Blue] and NOT 
{Opacity[0.5], Blue}

The following now works as expected.

y = -400*UnitStep[x - 100.8] + 8*(x - 63.4)*UnitStep[x - 63.4]
      -8*(x - 43.2)*UnitStep[x - 43.2] + 221.3

Plot[y, {x, 0, 144},
         Filling -> Axis,
         FillingStyle -> Opacity[.5,Blue],
         Frame -> True]

Plot[y, {x, 0, 144},
         Filling -> Axis,
         FillingStyle -> Blue,
         Frame -> True]

I think writing  {Opacity[0.5], Blue} instead of Opacity[.5,Blue] made it 
use the blue part for one part of the plot and Opacity[0.5] for another 
part.

One more item added to my Mathematica cheat sheet.

--Nasser 




  • Prev by Date: Re: Re: Special Input Characters' Reference Table
  • Next by Date: How to Orient Chart Labels Vertically
  • Previous by thread: Re: would like to compute a tensor derivative of a function and
  • Next by thread: How to Orient Chart Labels Vertically