how do I convert scatter data into a density plot
Show older comments
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
on 5 Jul 2023
Accepted Answer
More Answers (2)
Nikhil
on 4 Jul 2023
0 votes
Hey Howard,
After searching about your issue and I think that density plots using hist3 and contourf will be helpful.
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.
Categories
Find more on Scatter Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!