[Date Index]
[Thread Index]
[Author Index]
Re: Primitive Disk Gradient Fills in Graphics
*To*: mathgroup at smc.vnet.net
*Subject*: [mg111003] Re: Primitive Disk Gradient Fills in Graphics
*From*: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
*Date*: Fri, 16 Jul 2010 05:18:53 -0400 (EDT)
Hi all,
just clear the protection attributes of ChartElementData and find out
that
ChartElementData["GradientBubble", "Manipulate"]
should help.
Cheers
Patrick
On Thu, 2010-07-15 at 03:10 -0400, David Park wrote:
> Well, darn if there isn't a method for doing that within BubbleChart.
> Evaluate
>
> ChartElementData["BubbleChart"]
>
> {Bubble,FadingBubble,GradientBubble,MarkerBubble,NoiseBubble,OscillatingBubb
> le,PolyhedronBubble,SphereBubble,SquareWaveBubble,TriangleWaveBubble}
>
> for the various types of bubbles. Then, for example:
>
> BubbleChart[RandomReal[1, {10, 3}],
> ChartStyle -> "Pastel",
> ChartElementFunction -> "GradientBubble"]
>
> But how would we obtain different colors for the bubbles, say based on the
> radius? I don't know where we can feed it in.
>
> Instead of starting with high level, "set-piece" plot types, and then trying
> to screw them around with convoluted options, it would be much easier to
> start with primitives and build up the higher level plot types.
>
> Suppose I want a bubble fading from White to a color at the rim, and I want
> different colors depending on the radius of the bubble? Here is an easy way
> to build it up.
>
> Needs["Presentations`Master`"]
>
> First define the primitive.
>
> gradientDisk::usage =
> "gradientDisk[{xcenter, ycenter}, radius, color] will draw an \
> outlined disk with the color blended from White to full color across \
> the radius.";
> SyntaxInformation[
> gradientDisk] = {"ArgumentsPattern" -> {{_, _}, _, _}};
> gradientDisk[{xcenter_, ycenter_}, radius_, color_] :=
> {RegionDraw[(x - xcenter)^2 + (y - ycenter)^2 < radius^2, {x,
> xcenter - radius, xcenter + radius}, {y, ycenter - radius,
> ycenter + radius},
> ColorFunctionScaling -> False,
> ColorFunction ->
> Function[{x, y},
> Blend[{White, color},
> Rescale[Sqrt[(x - xcenter)^2 + (y - ycenter)^2], {0, radius}]]]],
> AbsoluteThickness[1],
> Circle[{xcenter, ycenter}, radius]}
>
> Adapt it to the WRI form of Bubble data with a particular color selection
> for the bubbles.
>
> myBubble[{x_, y_, r_}] :=
> gradientDisk[{x, y}, r, ColorData["SolarColors"][Rescale[r, {0, 2}]]]
>
> Then draw the bubble chart.
>
> data = Array[{RandomReal[{-10, 10}], RandomReal[{-10, 10}],
> RandomReal[{0.1, 2}]} &, 20];
> Draw2D[
> {myBubble /@ data},
> Frame -> True,
> ImageMargins -> 5,
> PlotRange -> 12
> ]
>
> Also, since WRI must have defined a primitive for SquareWaveBubble, say, how
> could we obtain direct access to it? (I know how to program one but since
> WRI has done, and buried, the work how about getting it out?)
>
>
> David Park
> djmpark at comcast.net
> http://home.comcast.net/~djmpark/
>
>
>
>
>
> From: M.Roellig [mailto:markus.roellig at googlemail.com]
>
> On 13 Jul., 11:28, Murta <rodrigomur... at gmail.com> wrote:
> > Hello All
> >
> > There is really no way to do a simple gradient fill inside a disk
> > in Mathematica?
> > I'm working in a BubbleChart, and would like to make a graphics
> > disk using ChartElements, going to color x to transparent using
> > opacity.
> > I get surprised to see that there is no way to work with gradient
> > fill inside primitives like Disk.. there is really this?
> > If it's true, please, correct it in Mathematica 8!...
>
> Hi,
>
> I agree, GradientFill would be nice, as well as TextureFill or any filling
> with arbitrary patterns. Until then you can try to construct it by yourself:
>
> GradientDisk[] :=
> Graphics[Table[{Hue[r], Circle[{0, 0}, r]}, {r, 0, 1, 0.001}]] ;
> BubbleChart[RandomReal[1, {10, 3}], ChartElements -> {GradientDisk[]}]
>
> or
>
> BWGradientDisk[] :=
> Graphics[Table[{GrayLevel[r], Circle[{0, 0}, r]}, {r, 0, 1,
> 0.001}]];
> BubbleChart[RandomReal[1, {10, 3}],
> ChartElements -> {BWGradientDisk[]}]
>
> This takes quite some time, since many Circles are drawn. If somebody knows
> how to rasterize a circly without getting square image borders, one
> could use the rasterized image as Element. Maybe exporting to gif
> with transparent white background works.
>
> Of course, the same excercise also works with Rectangles etc..
>
>
> Cheers,
>
> Markus
>
>
>
Prev by Date:
**Re: Fast pricer for American options**
Next by Date:
**Re: how to display the value of w after using do?**
Previous by thread:
**Re: Primitive Disk Gradient Fills in Graphics**
Next by thread:
**Re: Primitive Disk Gradient Fills in Graphics**
| |