Re: List plot with random size for each point
- To: mathgroup at smc.vnet.net
- Subject: [mg122513] Re: List plot with random size for each point
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Sun, 30 Oct 2011 04:24:58 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201110280936.FAA20855@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
Actually, my second solution DOES work for 4 points. Three points is the case that fails. I suspect it's more efficient to use Replace with a level spec, rather than restricting the pattern: numberOfPoints = 3; particle = Table[{n, RandomInteger[{15, 25}], {RandomInteger[{0, 200}], RandomInteger[{0, 200}]}}, {n, numberOfPoints}]; Graphics[Replace[ particle, {label_, size_, pt_} :> {AbsolutePointSize@size, Point@pt, White, Text[label, pt]}, {1}], Frame -> True, PlotRange -> {{-12, 213}, {-12, 213}}, ImageSize -> 500] Bobby On Sat, 29 Oct 2011 22:59:09 -0500, Bob Hanlon <hanlonr357 at gmail.com> wrote: > A good approach; however, as written they will fail for numberOfPoints > 4 > > Recommend that you qualify one or more patterns to being numeric, e.g., > > Graphics[particle /. {label_?NumericQ, size_, x_, > y_} :> {AbsolutePointSize@size, Point@{x, y}, White, > Text[label, {x, y}]}, Frame -> True, > PlotRange -> {{-12, 213}, {-12, 213}}, ImageSize -> 500] > > > Bob Hanlon > > > On Sat, Oct 29, 2011 at 1:55 PM, DrMajorBob <btreat1 at austin.rr.com> > wrote: >> Or equivalently, >> >> numberOfPoints = 20; >> particle = >> Table[{n, RandomInteger[{15, 25}], RandomInteger[{0, 200}], >> RandomInteger[{0, 200}]}, {n, numberOfPoints}]; >> Graphics[particle /. {label_, size_, x_, >> y_} :> {AbsolutePointSize@size, Point@{x, y}, White, >> Text[label, {x, y}]}, Frame -> True, >> PlotRange -> {{-12, 213}, {-12, 213}}, ImageSize -> 500] >> >> or >> >> numberOfPoints = 20; >> particle = >> Table[{n, >> RandomInteger[{15, 25}], {RandomInteger[{0, 200}], >> RandomInteger[{0, 200}]}}, {n, numberOfPoints}]; >> Graphics[particle /. {label_, size_, >> pt_List} :> {AbsolutePointSize@size, Point@pt, White, >> Text[label, pt]}, Frame -> True, >> PlotRange -> {{-12, 213}, {-12, 213}}, ImageSize -> 500] >> >> I find those more transparent. >> >> Bobby >> >> On Sat, 29 Oct 2011 06:13:56 -0500, Bob Hanlon <hanlonr357 at gmail.com> >> wrote: >> >>> numberOfPoints = 20; >>> >>> particle = Table[ >>> {n, RandomInteger[{15, 25}], >>> RandomInteger[{0, 200}], RandomInteger[{0, 200}]}, >>> {n, numberOfPoints}]; >>> >>> Graphics[ >>> {AbsolutePointSize[#[[2]]], Point[#[[{3, 4}]]], >>> White, Text[#[[1]], #[[{3, 4}]]]} & /@ >>> particle, >>> Frame -> True, >>> PlotRange -> {{-12, 213}, {-12, 213}}, >>> ImageSize -> 500] >>> >>> >>> Bob Hanlon >>> >>> >>> On Fri, Oct 28, 2011 at 5:36 AM, Rudresh <rudresh at email.unc.edu> wrote: >>>> >>>> I want to plot an array of numbers on a 2d plot, however each point >>>> has a >>>> random number associated with it which should be its size on the >>>> plot. Can >>>> this be done in mathematica and if so how. My code as of now is: >>>> >>>> ========================= >>>> >>>> particle = Array[f, {200, 4}]; >>>> position = Array[g, {200, 2}]; >>>> n = 1; >>>> While [n < 201, >>>> particle[[n, 1]] = n; >>>> particle[[n, 2]] = RandomInteger[{15, 25}]; >>>> particle[[n, 3]] = RandomInteger[{0, 200}]; >>>> particle[[n, 4]] = RandomInteger[{0, 200}]; >>>> >>>> position[[n, 1]] = particle[[n, 3]]; >>>> position[[n, 2]] = particle[[n, 4]]; >>>> n++ >>>> ]; >>>> >>>> ListPlot[position, PlotStyle -> PointSize[0.01], >>>> PlotRange -> {{0, 200}, {0, 200}}] >>>> >>>> ========================= >>>> >>>> I want particle[[n,2]] to be the size of position[[n,1],[n,2]] >>>> >>> >> >> >> -- >> DrMajorBob at yahoo.com >> -- DrMajorBob at yahoo.com
- References:
- List plot with random size for each point
- From: Rudresh <rudresh@email.unc.edu>
- List plot with random size for each point