Re: New graphics primitive: "Curve"?
- To: mathgroup at smc.vnet.net
- Subject: [mg79284] Re: [mg79248] New graphics primitive: "Curve"?
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Mon, 23 Jul 2007 03:47:13 -0400 (EDT)
- Reply-to: hanlonr at cox.net
An advantage of using Plot rather than just mapping the functions on a list of points is that Plot adaptively samples the range.
f1[x_] := (x - 2) (x - 3);
f2[x_] := x - 3/2;
You can either use Part
curveA = Plot[f1[x], {x, 1, 4}][[1, 1, 3, 2]];
curveB = Plot[f2[x], {x, 1, 4}][[1, 1, 3, 2]];
Show[Graphics[{curveA, curveB}]]
or select the Line
curveA = Cases[Plot[f1[x], {x, 1, 4}],
Line[__], Infinity];
curveB = Cases[Plot[f2[x], {x, 1, 4}],
Line[__], Infinity];
Show[Graphics[{curveA, curveB}]]
Bob Hanlon
---- AES <siegman at stanford.edu> wrote:
> I'd like to create named graphics elements ["curves"] that would contain
> the graphic content of just a single curve in a Plot or ParametricPlot
> (no axes or anything else, just the data curve), and that could then be
> displayed as graphics elements like pseudo primitives, e.g.
>
> curveA = Graphics[<some coding>]
> curveB = Graphics[<more coding>]
> Show[curveA, curveB, <other graphics stuff>]
>
> What might be preferred ways to do this?
>
> I suppose one way would be to make a Plot or ParametricPlot with
> everything but the function curve suppressed?
>
> curveA = Plot[f, range, <options to suppress Axes, etc>]
>
> Or, is there a way to pull just the curve out of a plot?
>
> curveA = Part[Plot[], i] ????
>
> (and if so, is that Part a graphic element already? Or must it then be
> wrapped in Graphics[]?)
>
> Or, generate a Line or a Polygon with lots of points? (Sounds
> inefficient)
>
> Or, what other approaches might be easy, fast, and efficient?
>
> [Thanks for any ideas. I've been reading Section 2.10, "The Structure
> of Graphics" in The Mathematica Book 5.2, but it's hard going.]
>
> [And P.S. -- Are there any good reasons to choose between wrapping each
> individual graphics element in Graphics[] as above and then Show-ing
> them using the syntax at the top of this msg, or alternatively leaving
> the individual named elements unwrapped and using instead
>
> Show[Graphics[{ curveA, curveB, <other stuff> }]]
>
> ]
>