MathGroup Archive 2006

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

Search the Archive

question about plot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg69589] question about plot
  • From: dimmechan at yahoo.com
  • Date: Sat, 16 Sep 2006 03:50:36 -0400 (EDT)

***Hello to all.

***I have a simple function

ln[156]:=Quit

ln[1]:=h[x_]:=x Tan[x]

***Here its Plot

In[4]:=Plot[h[x],{x,0,Pi}]

***Plot has incorrectly connected the points at p/2.

***There are two approaches to deal with this bug.

***The first is to use a Block structure along with Show

ln[6]:=Block[{$DisplayFunction = Identity}, g1 = Plot[h[x], {x, 0,
Pi/2}];
ln[7]:=g2 = Plot[h[x], {x, Pi/2, Pi}]];
Show[g1, g2, DisplayFunction \[Rule] $DisplayFunction]

***The other is to define your code. Here is my attempt:

In[12]:=
plotdisc[f_,a_,b_,x0_,opts___]:=Show[Map[Plot[f,{x,#[[1]],#[[2]]},

DisplayFunction\[Rule]Identity,opts]&,Delete[Partition[{a,x0-10^-8,x0+10^-8,b},\
2,1],2]],DisplayFunction\[Rule]$DisplayFunction]

In[13]:=plotdisc[h[x],0,Pi,Pi/2,Axes->False,Frame->True]

***However my plotdisc[] function has the disadvantage that can deal
with only one
discontinuity each time.

***How can I modify it (or if I can't, I look for another more elegant
code) so that to deal with
any number of discontinuities.

***In other words I look for a function (if mine cannot be modified)
which for example has the same output with

ln[16]:=Block[{$DisplayFunction = Identity}, gg1 = plotdisc[h[x], 0,
Pi, Pi/2];
    gg2 = plotdisc[h[x], Pi, 2Pi, 3Pi/2]];
ln[17]:=Show[gg1, gg2, DisplayFunction \[Rule] $DisplayFunction]


***Thanks in advance for any assistance.


  • Prev by Date: Re: A new application for Mathematica
  • Next by Date: RE: plotting multidimensional arrays
  • Previous by thread: Re: Re: Variables Within Homemade Functions
  • Next by thread: Re: question about plot