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.