I am reading on Tufte's data-ink ratio and I was wondering if it is possible to measure the amount of "ink" a plot uses?
If not possible in R perhaps with another tool such as GIMP or imagemagick?
I am reading on Tufte's data-ink ratio and I was wondering if it is possible to measure the amount of "ink" a plot uses?
If not possible in R perhaps with another tool such as GIMP or imagemagick?
I'd suggest using grid.cap()
to convert the contents of the graphics device to a raster, after which it's a simple matter to compute the proportion of non-white pixels (aka "ink"). In the following example, to focus the computations on ink in the plotting area, I've set par(mar=c(0,0,0,0))
, but you can drop that line if you want to also examine the amount of ink in the axes, ticks, axis labels, title, etc.
library(grid)
## Plot to R's default graphical device
opar <- par(mar=c(0,0,0,0))
plot(rnorm(1e4), rnorm(1e4), pch=16)
## Capture contents of the graphics device as a raster (bitmap) image
p <- grid.cap()
## Compute the proportion of pixels that are not white (i.e. are inked in)
sum(p!="white")/length(p)
# [1] 0.2414888
## Restore pre-existing graphical parameters
par(opar)
© 2022 - 2024 — McMap. All rights reserved.
raster
package) two plots, you can measure the amount of "non white" points. This would get you close, especially if the two plots have the same amount of "background" ink in labels, axes, legend... – Fractionatehttp://stackoverflow.com/a/16788397/1412059
– Houseboygrid::grid.cap()
to create the bitmap raster. – Undeniable