A fast scatter plot
h=fastscatter(X,Y,C [,markertype,property-value pairs])
An illustrative example of the speed-up when using fastscatter over scatter:
tic; for ii=1:10, clf; fastscatter(X,Y,C); drawnow; end; fastscatter_time=toc
tic; for ii=1:10, clf; scatter(X,Y,S,C); drawnow; end; regularscatter_time=toc
fastscatter_time = 3.4 seconds
regularscatter_time = 63.3 seconds
speed_increase = 18x
And for N=400000, the performance boost was ~38x.
Aslak Grinsted (2021). fastscatter.m (https://www.mathworks.com/matlabcentral/fileexchange/47205-fastscatter-m), MATLAB Central File Exchange. Retrieved .
Simple and fast. Thank you
This seems to be a very fast algorithm, excellent!
But I'm struggling with the color of the plot. I'm trying to pass a n by 3 matrix with rgb colors but the reordering that you make to the Z column work is changing the C column as well, so I'm allowed to pass only one color channel. How can I workaround this?
Unfortunately, this function doesn't work if the amount of points is 1 or 2.
Error using mesh (line 70)
Z must be a matrix, not a scalar or vector.
Error in fastscatter (line 40)
@YounesN: i think this is caused by a bug in image for R2014b. Try this workaround:
This function is excellent. The inbuilt scatter function was slowing my computer to a halt when I tried to plot > 200,000 points, but with fastscatter it's no problem. Thanks for sharing, Aslak!
The speedup is amazing and helps a lot but I'm having difficulty with the colorbar when superimposing scatter points on an aerial image , using fastscatter() after image(). The colorbar doesn't correspond to the colors in the plot. Would highly appreciate your help.
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!