|
Re: ListPlot - assigning a list of colors to a set of
Posted:
Nov 6, 2013 12:23 AM
|
|
Thanks Bob,
Your solutions are compact. The code below extends your first example to use a long list of XY coordinates and colours in ListPlot.
nbr = 1000 xy = Transpose[{RandomReal[{0, 1}, nbr], RandomReal[{0, 1}, nbr]}]; (* xy data to plot *) cols = Table[RandomChoice[{Red, Green, Blue}], {i, nbr}]; (* list of colors *)
ListPlot[List /@ xy, PlotStyle -> (Directive[PointSize[0.02], Opacity[0.6], #] & /@ cols)]
Gordon
On 2013-11-05, at 8:34 AM, Bob Hanlon wrote:
Make each point a separate data list and repeat the PointSize:
ListPlot[List /@ {{1, 1}, {2, 2}, {3, 3}}, PlotStyle -> (Directive[PointSize[0.02], #] & /@ {Red, Green, Blue})]
Although you can use a List instead of Directive:
ListPlot[List /@ {{1, 1}, {2, 2}, {3, 3}}, PlotStyle -> ({PointSize[0.02], #} & /@ {Red, Green, Blue})]
Alternatively,
ListPlot[List /@ {{1, 1}, {2, 2}, {3, 3}}, PlotStyle -> {Red, Green, Blue}, PlotMarkers -> {Automatic, Medium}]
Bob Hanlon
On Mon, Nov 4, 2013 at 11:16 PM, Gordon Robertson <grobertson@bcgsc.ca<mailto:grobertson@bcgsc.ca>> wrote:
I'm using Mathematica v9.x on a Mac, with OS X 10.7.5.
Could I ask about something that likely has a very simple solution? I have a list of XY coordinates for say 500 points that will become a scatterplot via ListPlot. I need to assign a colour to each point, using a list of labels (histology, risk, =85).
I've generated ArrayPlot graphics for cases like this for some time. For example, given some labels in column 4 of a 'hist' table: colours = Table[{ Switch[name = hist[[i, 4]], "Classical", Green, "Tall cell", Red, "Other", Blue] }, {i, Length[hist]}]; ArrayPlot[{colours}, AspectRatio -> 0.1, Frame -> False]
For a ListPlot, I'd have thought that something as simple as dropping a list of colours into a PlotStyle Directive would do the job. But the following line plots three blue points, rather than a Red, Green and Blue point. ListPlot[{{1, 1}, {2, 2}, {3, 3}}, PlotStyle -> Directive[PointSize[0.02], {Red, Green, Blue}]]
Is there a simple way to declare a list of colours in ListPlot? I've looked through the PlotStyle documentation, and apologize if I've missed seeing how to do this.
Thanks very much for your help.
Gordon -- Gordon Robertson Michael Smith Genome Sciences Centre BC Cancer Agency Vancouver BC Canada www.bcgsc.ca<http://www.bcgsc.ca/><http://www.bcgsc.ca<http://www.bcgsc.ca/>>
|
|