Я читаю на Tufte's data-ink ratio, и мне было интересно, можно ли измерить количество «чернил», которое использует сюжет?Измерение «чернил» графика
Если это невозможно в R, возможно, с помощью другого инструмента, такого как GIMP или imagemagick?
Я читаю на Tufte's data-ink ratio, и мне было интересно, можно ли измерить количество «чернил», которое использует сюжет?Измерение «чернил» графика
Если это невозможно в R, возможно, с помощью другого инструмента, такого как GIMP или imagemagick?
Я бы предложил использовать grid.cap()
для преобразования содержимого графического устройства в растровое изображение, после чего просто вычислить долю небелых пикселей (иначе говоря, «чернила»). В следующем примере, чтобы сфокусировать вычисления на чернилах в области построения графика, я установил par(mar=c(0,0,0,0))
, но вы можете отбросить эту строку, если хотите также проверить количество чернил в осях, тиках, меток осей, заголовке и т. Д. .
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)
Я предполагаю, что сложность заключается в том, должно ли решение автоматически определять, какие «чернила» соответствуют данным, а какие нет. Это так же просто, как сказать: «фоновые« чернила »- это не данные, а остальное?» – Jon
Не совсем. Я не пытаюсь измерить соотношение данных и чернил, а просто количество чернил сюжета (как-то независимое от разрешения). Если вы знаете «чернила» из двух графиков, отображающих одну и ту же информацию (при этом «чернила данных» являются одинаковыми), вы можете получить соотношение чернил данных самостоятельно. – ECII
см. Https://github.com/ceteri/dataink в качестве отправной точки –