Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

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

Search the Archive

RE: question about plot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg69596] RE: [mg69589] question about plot
  • From: "David Park" <djmp at earthlink.net>
  • Date: Sun, 17 Sep 2006 06:57:07 -0400 (EDT)

The DrawGraphics package from my web site below has routines to eliminate
'return lines' across discontinuities. There are three versions,
SplitLineOnDistance, SplitLineOnVertical and SplitLineOnSlope.

Here is an example on your function plotted over a domain that contains two
discontinuities.

Needs["DrawGraphics`DrawingMaster`"]

h[x_] := x Tan[x]

Draw2D[
    {Draw[h[x], {x, 0, 2Pi}] /. SplitLineOnVertical[100]},
    Axes -> True];

What is the syntactical meaning of all the '***' that you include in your
postings?

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/



From: dimmechan at yahoo.com [mailto:dimmechan at yahoo.com]
To: mathgroup at smc.vnet.net


***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: question about DiracDelta
  • Next by Date: Re: Variables Within Homemade Functions
  • Previous by thread: Re: question about plot
  • Next by thread: question about plot