Re: Re: how fill PolarPlot?
- To: mathgroup at smc.vnet.net
- Subject: [mg84454] Re: [mg84431] Re: [mg84420] how fill PolarPlot?
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Tue, 25 Dec 2007 06:27:34 -0500 (EST)
- Reply-to: hanlonr at cox.net
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 >