Re: ScatterPlot3D with One More Dimension?
- To: mathgroup at smc.vnet.net
- Subject: [mg65156] Re: [mg65136] ScatterPlot3D with One More Dimension?
- From: Darren Glosemeyer <darreng at wolfram.com>
- Date: Wed, 15 Mar 2006 23:59:30 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
At 06:29 AM 3/15/2006 -0500, Matt Thompson wrote: >Folks, I'm wondering if it's possible to add a dimension to a >ScatterPlot3D in the form of color? I have a Perl script that generates a >list of {x,y,z} for a SP3D from a molecular dynamics trajectory, and it >does work, but the plot is just mono. > >Rather, I'd like to change the color of certain points depending on the >state the trajectory is on at that time. That is, a sort of >RGBColor[1,0,0] for some points, then back to [0,0,0] for others, &c. > >Is this possible, or should I start exploring IDL, et al? One possibility is to construct the graphic directly as a Graphics3D object. data = Table[{Random[], Random[], Random[]}, {50}]; The following will make all elements of data with a total greater than 1 red, and all other points will be black. Show[Graphics3D[Map[If[Total[#] > 1, {PointSize[.02], Red, Point[#]}, {PointSize[.02], Black, Point[#]}] &, data]], Axes -> True] The following replaces the red coloring with RGBColor applied to the data element. Show[Graphics3D[Map[If[Total[#] > 1, {PointSize[.02], Apply[RGBColor, #], Point[#]}, {PointSize[.02], Black, Point[#]}] &, data]], Axes -> True] The following is an example with 4 dimensional data where the first 3 dimensions are plotted and the fourth dimension determines the color. data4d = Table[{Random[], Random[], Random[], Random[]}, {50}]; Show[Graphics3D[Map[If[#[[-1]] > .3, {PointSize[.02], Red, Point[Most[#]]}, {PointSize[.02], Black, Point[Most[#]]}] &, data4d]], Axes -> True] Darren Glosemeyer Wolfram Research