[Date Index]
[Thread Index]
[Author Index]
Re: how fill PolarPlot?
*To*: mathgroup at smc.vnet.net
*Subject*: [mg84431] Re: [mg84420] how fill PolarPlot?
*From*: Murray Eisenberg <murray at math.umass.edu>
*Date*: Mon, 24 Dec 2007 04:43:42 -0500 (EST)
*Organization*: Mathematics & Statistics, Univ. of Mass./Amherst
*References*: <200712230934.EAA03990@smc.vnet.net>
*Reply-to*: murray at math.umass.edu
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
Prev by Date:
**Re: sum over i+j+k==n**
Next by Date:
**Re: how fill PolarPlot?**
Previous by thread:
**Re: how fill PolarPlot?**
Next by thread:
**Re: how fill PolarPlot?**
| |