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
- References:
- how fill PolarPlot?
- From: Murray Eisenberg <murray@math.umass.edu>
- how fill PolarPlot?