how add intensity/frequency to the scatter plot

5 visualizzazioni (ultimi 30 giorni)
Hi, I would like to scatter plot these two vectors: X=[0 0 1 2 0 1 1 0]; Y=[1 1 1 1 2 0 0 2]; and had the frequency of occurrence in the color or in the size of the points, something like the attached pic

Risposta accettata

Pawel Jastrzebski
Pawel Jastrzebski il 6 Mar 2018
Modificato: Pawel Jastrzebski il 6 Mar 2018
Consider the code below but also check the documentation for:
X=[0 0 1 2 0 1 1 0];
Y=[1 1 1 1 2 0 0 2];
% find the freqency vector
minVal = min(Y)
maxVal = max(Y)
vectorOfvalues = minVal:maxVal
howMany = Y'==vectorOfvalues
howManySum = sum(howMany);
% this line nicely show how the occurance of a value
% 1st row: value
% 2nd row: occurance
howManySum = [vectorOfvalues; howManySum]
% pre-allocation
occurence = zeros(1,length(Y));
for i=1:length(howManySum)
occurence(Y==howManySum(1,i)) = howManySum(2,i);
end
Y
occurence
% I've added the factor of 50 for the occurance
% so the diffrence between the dot sizes is visible
figure
scatter(X,Y,50*occurence)
  6 Commenti
didi
didi il 7 Mar 2018
R2015a..indeed maybe it can be related to the version
Pawel Jastrzebski
Pawel Jastrzebski il 7 Mar 2018
Must be. The code:
howMany = Y'==vectorOfvalues
uses so called implicit expansion which was introduced in version R2016B.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by