devtools::install_github('teri934/scattermore2')
R package with implemented C-based conversion of large scatterplot data to rasters plus other operations such as data blurring or data alpha blending. Speeds up plotting of data with millions of points. Webpage for overview
library(scattermore2)
histogram <- scatter_histogram(cbind(rnorm(1e5), rnorm(1e5)), xlim=c(-5,5), ylim=c(-5,5))
blurred_histogram <- apply_kernel_histogram(histogram, kernel_pixels=10)
rgbwt <- histogram_to_rgbwt(blurred_histogram)
raster <- rgba_int_to_raster(rgbwt_to_rgba_int(rgbwt))
plot(raster)
rgbwt <- scatter_points_rgbwt(points, RGBA= c(64,128,192,50), xlim=c(-5,5), ylim=c(-5,5))
blurred_rgbwt <- apply_kernel_rgbwt(rgbwt)
raster <- rgba_int_to_raster(rgbwt_to_rgba_int(blurred_rgbwt))
plot(raster)
p1 <- scatter_points_rgbwt(points, RGBA= c(64,128,192,50), xlim=c(-5,5), ylim=c(-5,5))
p2 <- scatter_points_rgbwt(points, RGBA= c(192,128,64,50), xlim=c(-5,5), ylim=c(-5,5))
merged <- merge_rgbwt(p1,p2)
raster <- rgba_int_to_raster(rgbwt_to_rgba_int(merged))
plot(raster)
p1 <- scatter_points_rgbwt(points, RGBA= c(64,128,192,50), xlim=c(-5,5), ylim=c(-5,5))
p2 <- scatter_points_rgbwt(points, RGBA= c(192,128,64,50), xlim=c(-5,5), ylim=c(-5,5))
p1_frgba <- rgbwt_to_rgba_float(p1)
p2_frgba <- rgbwt_to_rgba_float(p2)
blended <- blend_rgba_float(p1_frgba,p2_frgba)
raster <- rgba_int_to_raster(rgba_float_to_rgba_int(blended))
plot(raster)
Compare scattermore2
with default R functionality. Scattermore2
only creates raster graphics for the plots, its result can be plotted afterwards.
# create 10 million 2D datapoints
points <- cbind(rnorm(1e7),rnorm(1e7))
# plot the datapoints and see how long it takes
system.time(plot(rgba_int_to_raster(rgbwt_to_rgba_int(scatter_points_rgbwt(points, RGBA= c(64,128,192,50), xlim=c(-5,5), ylim=c(-5,5))))))
user system elapsed
0.743 0.216 0.959
You should see something like this:
Now the default:
system.time(plot(points, pch='.', xlim=c(-5,5), ylim=c(-5,5), col=rgb(0.25,0.5,0.75,0.04)))
user system elapsed
6.944 0.060 7.012
Nice examples for creating histograms from archaelogical data. Smithsonian Institute provides a lot of interesting data, including mammoth skeleton and T-rex skeleton eating triceratops skeleton.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.