Message Boards Message Boards

0
|
5167 Views
|
3 Replies
|
1 Total Likes
View groups...
Share
Share this post:

[?] Color coding scatterplots?

Posted 5 years ago

Given a list A and a ListPlot of A how can the plotting points be color coded by the values in list B?

A={{1,1},{2,2},{3,3},{4,4},{5,5}};
B={Red,Red,Blue,Blue,Blue};

This has to be an easy task than I am making difficult. Help please.

POSTED BY: Dave Lubbers
3 Replies

You could wrap the point data values in Style, something along the lines of:

ListPlot[{Style[{1,1},Red], Style[{2,2},Blue],etc..}]

This is described in the documentation for ListPlot if you drill down into Scope and then Wrappers.

POSTED BY: Ian Williams

Tried the wrappers. Worked great for small datasets. For large (500,000) datasets it was too slow. Had to go ahead and separate the data into multiple lists. The language R was the model.

POSTED BY: Dave Lubbers

This will do the trick.

A = RandomReal[{0, 10}, {10000, 2}];
B = RandomChoice[{Red, Green, Blue}, 10000];

AB = GatherBy[Thread[{A, B}], Last];

col = AB[[All, 1, 2]];
points = AB[[All, All, 1]];

ListPlot[points, PlotStyle -> col]

enter image description here

POSTED BY: Martijn Froeling
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract