Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

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

Search the Archive

Re: extracting contour points

  • To: mathgroup at smc.vnet.net
  • Subject: [mg92482] Re: extracting contour points
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Wed, 1 Oct 2008 18:32:24 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <gbulri$ld4$1@smc.vnet.net>

peterp wrote:

> I've searched the group but I still have a problem. The contour sought
> below returns two lines (you can actually see them on the graphic output).
> The commands after the contour plot only extract the coordinates of one
> of the two lines. How do I get the second ?

The code you have posted does not work at all, because:

. There are syntax errors
. Erroneous level specification
. When all the above have been corrected, Mathematica still counts only 
one Line

> I tried replacing "First" by "Second" but no dice.

:-) Use *Part* (shortcut [[ ]]


> Thanks,
> Peter
> 
> f[p_, a_, x_] = - p x + x^(a + 1)
> 
> contour =
>   ContourPlot[Arg[f[1, .6, x + I y]], {x, -2, 2}, {y, -2, 2}, Contours
> -> {0},
>      ContourShading -> False, PlotPoints -> 100]
> 
> grcontour = Graphics[contour];
> InputForm[grcontour];
> lns = First[
>       Cases[First[grcontour] // Normal, Line[pts_] -> pts, \
> [Infinity]]];
==^^^^^^^^^^
Syntax error: curly braces are required here: {Infinity}
Second error: to find the head Line, you must start from level zero, 
i.e. {0, Infinity}

> dat = Table[lns];
=============^^^^^^
Syntax error: Table requires two operands, the second being an iterator.

> Export["junk.dat", Re[dat]]
> 

In[1]:= f[p_, a_, x_] := (-p)*x + x^(a + 1)

contour =
  ContourPlot[Arg[f[1, 0.6, x + I*y]], {x, -2, 2}, {y, -2, 2},
      Contours -> {0}, ContourShading -> False]
grcontour = Graphics[contour];
lns = Cases[Normal[First[grcontour]],
     Line[pts_] -> pts, {0, Infinity}][[1]];

Count[Normal[grcontour], _Line, {0, Infinity}]

Out[5]= 1

In[6]:= contour =
  ContourPlot[Arg[f[1, 0.6, x + I*y]], {x, -2, 2}, {y, -2, 2},
      Contours -> {0, 1}, ContourShading -> False]
grcontour = Graphics[contour];
lns = Cases[Normal[First[grcontour]],
     Line[pts_] -> pts, {0, Infinity}][[1, 2]];

Length[lns]

Count[Normal[grcontour], _Line, {0, Infinity}]

Out[9]= 2

Out[10]= 3

HTH,
-- Jean-Marc



  • Prev by Date: Re: vector field specifying location of vectors
  • Next by Date: Re: Re: Display Math Formula
  • Previous by thread: Re: extracting contour points
  • Next by thread: Re: Font size in plot coordinates?