MathGroup Archive 2007

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

Search the Archive

Re: Dotted Lines at Discontinuities

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73335] Re: Dotted Lines at Discontinuities
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Tue, 13 Feb 2007 06:52:41 -0500 (EST)
  • Reply-to: hanlonr at cox.net

I am not a professor/educator. 

Send your questions to MathGroup, not to me.

Use a dummy function name temporarily.

plotDisc[args___]:=Module[{p,temp},
      p=(Plot[args,DisplayFunction->Identity]//.
              (Line[{s___,{x1_,y1_},{x2_,y2_},e___}]/;
                    (Abs[(y2-y1)/(x2-x1)]>10||Sign[y1]!=Sign[y2])):>
                Sequence[Line[{s,{x1,y1}}],
                  AbsoluteDashing[{5,5}],temp[{{x1,y1},{x2,y2}}],
                  AbsoluteDashing[{}],Line[{{x2,y2},e}]])/.temp->Line;
      Show[p,DisplayFunction->$DisplayFunction]];

g=UnitStep[x-3]+UnitStep[x-5]-3UnitStep[x-6];

plotDisc[g,{x,0,10},PlotStyle->Red];


Bob Hanlon

---- Mr Ajit Sen <senra99 at yahoo.co.uk> wrote: 
> Dear Prof Hanlon,
> 
>   I refer to the nice code you posted in Mathgroup
> (Sun 17 Sept 2006), whereby the vertical lines at
> discontinuities are removed:
> 
>   plotDisc[args___] := Module[{p},
>       p = Plot[args, DisplayFunction -> Identity] //.
>           (Line[{s___, {x1_, y1_}, {x2_, y2_},
> e___}]/;
>                 (Abs[(y2-y1)/(x2-x1)] > 10^3 &&
>                     Sign[y1] != Sign[y2])):>
>             Sequence[Line[{s, {x1, y1}}], Line[{{x2,
> y2}, e}]];
>       Show[p, DisplayFunction -> $DisplayFunction]];
> 
>   My problem is I'd like to have them in, but as
> dotted lines instead.  At the moment I'm using your
> code with some slight modifications (e.g. 10 instead
> of 10^3, || instead of && ) and then include the
> dotted lines one by one.  Thus for the function
> 
>      g = UnitStep[x - 3] + UnitStep[x - 5] -    
> 3UnitStep[x - 6] ,
> 
>   I am doing it as follows :
> 
>   p=plotDisc[g,{x,0,10}]
>   p1=Graphics[{Red, AbsoluteDashing[{5,10}],
>      Line[{{3,0},{3,1}}]}]
>   p2=Graphics[{Red, AbsoluteDashing[{5,10}],
>      Line[{{5,1},{5,2}}]}]
>   p3=Graphics[{Red, AbsoluteDashing[{5,10}],
>      Line[{{6,2},{6,-1}}]}] 
> 
>  Show[p,p1,p2,p3]  
> 
>   This works fine but I think there should be a neater
> way to go about it  for arbitrary discontinuous
> functions.  I tried to put 
>    
>   Graphics[{Red, AbsoluteDashing[{5,10}],
>      Line[{{x1,y1},{x1,y2}}]}] 
> 
>   before the last line in your code, but that just
> didn't work !
> 
>   I would be most grateful if you could please help me
> out on this.
> 
>   Thank you very much in advance.
> 
>   Ajit Sen.



  • Prev by Date: Re: Re: can't InstallJava[] on Linux-x86-64 to Import an xls file
  • Next by Date: Comments in the front end
  • Previous by thread: Re: Re: can't InstallJava[] on Linux-x86-64 to Import an xls file
  • Next by thread: Re: Dotted Lines at Discontinuities