Showing repeat data points in XY/scatter plot

I'm trying to figure out a way to show in a scatter plot a way to make points darker or larger if they appear more than once. Lets say you have 3 points, and 2 are the exact same x,y coordinates, but plotting this you would only see 2 points that look the same on the plot. How can the ones that are repeats look different? I was trying to write a function to make new arrays with repeat data, but this is proving difficult as well.

 Risposta accettata

%Data
x = ones(1,12);
y = [1 1 2 3 3 3 4 5 6 2 2 2];
%Engine
[uxy, jnk, idx] = unique([x.',y.'],'rows');
szscale = histc(idx,unique(idx));
%Plot Scale of 25 and stars
scatter(uxy(:,1),uxy(:,2),'p','sizedata',szscale*25)

1 Commento

This is fine for integer coordinates; if the coordinates have fractions, then the fuller accumarray() solution I linked to would be necessary.

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 3 Giu 2011
Please see my answer to this. Be sure to expand the comments as the details show up there.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by