Re: Re: how fill PolarPlot?
- To: mathgroup at smc.vnet.net
- Subject: [mg84455] Re: [mg84431] Re: [mg84420] how fill PolarPlot?
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Tue, 25 Dec 2007 06:28:05 -0500 (EST)
- Organization: Mathematics & Statistics, Univ. of Mass./Amherst
- References: <20071224091350.HNWYO.62626.root@eastrmwml30>
- Reply-to: murray at math.umass.edu
Your response suggests that perhaps it's not possible directly to use
polar coordinates themselves as arguments to the ColorFunction function.
If so, that's a shame.
Bob Hanlon wrote:
> PolarPlot[Cos[2 theta], {theta, 0, 2 Pi},
> ColorFunction ->
> Function[{x, y}, If[-Pi/4 <= ArcTan[x, y] <= Pi/4, Red, Blue]],
> ColorFunctionScaling -> False]
>
>
> Bob Hanlon
>
> ---- Murray Eisenberg <murray at math.umass.edu> wrote:
>> I was finally able to do this with Epilog->{Inset[RegionPlot[...]]}.
>>
>> Below is the entire code for the embellished plot I wanted. I am still
>> unhappy with at the amount of work I had to do in order to adjust the
>> ImageSize of the filled leaf and the thickness of its boundary so as to
>> cover up the underlying blue boundary of that leaf from the PolarPlot.
>>
>> Some of that adjustment could probably be avoided by using a
>> ColorFunction for the overall POlarPlot. But how does one set up
>> ColorFunction for PolarPlot so as to specify using, say, one color for
>> part of the plot and another for another part, depending on the value of
>> theta alone?
>>
>> I found no example of ColorFunction in the documentation. I tried, e.g.,
>>
>> PolarPlot[Cos[2 theta], {theta, 0, 2 Pi},
>> ColorFunction ->
>> Function[{theta,r}, If[-Pi/4 <= theta <= Pi/4, Red, Black]]]
>>
>> but that doesn't work as expected.
>>
>> The finished figure's code:
>>
>> txt[t_,{x_,y_}]:=Style[Text[t,{x,y}],FontSize->30,FontWeight->Bold]
>> {xmin,xmax}={-1.425,1.425}; {ymin,ymax}={-1.25,1.25};
>>
>> PolarPlot[Cos[2t],{t,0,2Pi}, PlotRange->{{xmin,xmax},{ymin,ymax}},
>> PlotStyle->{ColorData["Legacy","SteelBlue"], Thickness[0.007]},
>> Ticks->None,
>>
>> Epilog->{
>> Inset[RegionPlot[(x^2+y^2)^(3/2)<=x^2-y^2,{x,-0.02,1},{y,-1,1},
>> PlotStyle->ColorData["HTML","Gold"],
>> BoundaryStyle->Directive[Thickness[0.025],
>> ColorData["Legacy","CadmiumOrange"]],
>> Frame->False,AspectRatio->Automatic,
>> ImageSize->2.6*72],
>> {0.5,0}],
>> Black,Thick,Dashing[{0.045,0.03}],
>> Line[{{0,0},{0.85,0.85}}],Line[{{0,0},{0.85,-0.85}}],
>> Dashing[{}],Thick,
>> Arrow[{{xmin,0},{xmax,0}}],Arrow[{{0,ymin},{0,ymax}}],
>> txt[TraditionalForm[HoldForm[r==cos 2t ]],{-0.6,1.0}],
>> txt[TraditionalForm[HoldForm[t==Pi/4]],{1.125,0.925}],
>> txt[TraditionalForm[HoldForm[t==-Pi/4]],{1.125,-0.99}]
>> },
>> ImageSize->7*72]
>>
>> Murray Eisenberg wrote:
>>> I Mathematica 6 I have a PolarPlot, e.g., a 4-leaved rose:
>>>
>>> PolarPlot[Cos[2 theta], {theta, 0, 2 Pi}]
>>>
>>> How can I fill the inside -- or, what I really want, just the leaf in
>>> the right half-plane -- with some color?
>>>
>>> I note that Filling does not seem to be an option for PolarPlot (or for
>>> what would be almost as good, ParametricPlot).
>>>
>>> I tried including the following (obtained by converting from :
>>>
>>> Prolog->RegionPlot[(x^2 + y^2)^(3/2) <= x^2-y^2, {x,-0.02,1},{y,-1,1},
>>> Frame->False, AspectRatio->Automatic]
>>>
>>> However, that led to a mysterious error message:
>>>
>>> $Aborted is not a Graphics primitive or directive.
>>>
>>> (Perhaps because of an incompatibility of a Prolog with cartesian
>>> coordinates inside a polar coordinate plot??)
>>>
>> --
>> Murray Eisenberg murray at math.umass.edu
>> Mathematics & Statistics Dept.
>> Lederle Graduate Research Tower phone 413 549-1020 (H)
>> University of Massachusetts 413 545-2859 (W)
>> 710 North Pleasant Street fax 413 545-1801
>> Amherst, MA 01003-9305
>>
>
--
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
- Follow-Ups:
- Re: Re: Re: how fill PolarPlot?
- From: Brett Champion <brettc@wolfram.com>
- Re: Re: Re: how fill PolarPlot?