re: Scatter plot
- To: mathgroup at yoda.physics.unc.edu
- Subject: re: Scatter plot
- From: tgayley (Todd Gayley)
- Date: Fri, 26 Mar 1993 08:46:45 -0600
Dennis Schaeffer (schaeffer_dennis at macmail1.rtsg.mot.com) asks: >I would like to know if there is a way to plot a list of {x, y, z} values on a >2D scatter plot where x and y determine position on the x-y plane and the z >value would determine the color for the dot. > >Thanks in advance, > >-Dennis- This can be done very easily with a replacement rule. You have a list of triples and you want to turn each triple into a "Point of the first two numbers and a Hue of the third". That verbal statement translates directly into a single line of code. In[1]:= data = Table[Random[],{8},{3}] Out[1]= {{0.376687, 0.528899, 0.145955}, {0.288695, 0.32407, 0.784966}, {0.334509, 0.35705, 0.740198}, {0.175488, 0.03863, 0.730385}, {0.665578, 0.927367, 0.329819}, {0.669595, 0.464939, 0.374672}, {0.774491, 0.790915, 0.562525}, {0.963257, 0.92481, 0.450602}} In[2]:= data2 = data /. {x_,y_,z_} :> {Hue[z],Point[{x,y}]} Out[2]= {{Hue[0.145955], Point[{0.376687, 0.528899}]}, {Hue[0.784966], Point[{0.288695, 0.32407}]}, {Hue[0.740198], Point[{0.334509, 0.35705}]}, {Hue[0.730385], Point[{0.175488, 0.03863}]}, {Hue[0.329819], Point[{0.665578, 0.927367}]}, {Hue[0.374672], Point[{0.669595, 0.464939}]}, {Hue[0.562525], Point[{0.774491, 0.790915}]}, {Hue[0.450602], Point[{0.963257, 0.92481}]}} Of course, you could use any color primitive in place of Hue, but note that it must come before the Point if it is to have any effect. In[3]:= Show[Graphics[data2, Axes->True]] --Todd Gayley