how do I convert scatter data into a density plot

180 views (last 30 days)
I have scatter data in an x and y array. Using Scatter this produces dots at the x,y coordinate.
How do I convert this to a density map (I will have many more points). I could do this by splitting the space into a number of bins of a defined size and then count the number of points that fell inside each, then I would have x',y',z data, but there must be a Matlab function for this
Typical scatter plot is
  1 Comment
Howard Padmore
Howard Padmore on 5 Jul 2023
thanks for the suggestion. Histcounts2 worked perfectly. Only issue is that the routine gives the edge positions of each bin as two vectors, and then an array of intensities, so you end up with 1 more position in each vector than histogram bins along each axis. I averaged adjacent bin edge positions, so this gives the same number of positions in the x-y vectors as values in the x-y array. Then you can use mesh or surface to view the density plot. Many thanks for the help.

Sign in to comment.

Accepted Answer

Diya Tulshan
Diya Tulshan on 4 Jul 2023
Hii Howard Padmore,
I understand that you want to know about the MATLAB function to convert scatter data into density plot.
Kindly refer to the following documents for implementing the plot:-

More Answers (2)

Nikhil
Nikhil on 4 Jul 2023
Hey Howard,
After searching about your issue and I think that density plots using hist3 and contourf will be helpful.

Emma Farnan
Emma Farnan on 1 Mar 2024
Depending on how close your points are and their original size, you could just use the additive opacity from MarkerFaceAlpha to give some intuition of the density.
x = randn(10000,1);
y = randn(10000,1);
figure; s = scatter(x,y,'filled','MarkerFaceAlpha',0.05);
Or alternatively, you could get a smoother version of the the histograms by using kernel density estimation (ksdensity) to predict the probability distribution. The example page shows how it can be used to plot a 3D meshgrid of the point density.

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!