Уменьшить размер файла графика (R) (по сюжету)

Я создал карту в R, используя ggplotly. Чтобы создать ссылку, она должна быть 524 КБ или меньше, но в настоящее время она составляет 1,2 МБ. Есть ли хорошие способы уменьшить размер файла, чтобы я мог его экспортировать? Или это совсем нереально?


person Jaccar    schedule 07.09.2018    source источник
comment
Смотрите мой ответ ниже. Одним из узких мест на вашей карте может быть то, что она просто генерируется со слишком большим количеством точек. В этом случае уменьшение количества точек, используемых для создания карты, приведет к уменьшению размера файла, возможно, даже ниже порога в 524 КБ, к которому вы стремитесь.   -  person Rich Pauloo    schedule 07.09.2018


Ответы (1)


Если на вашей карте есть многоугольники, обратите внимание на rmapshader::ms_simplify(), который использует алгоритм Visvalingam для уменьшения количества точек, используемых для построения многоугольника.

Вот воспроизводимый пример:

> p  <- raster::shapefile(system.file("external/lux.shp", package="raster")) # load data
> p2 <- rmapshaper::ms_simplify(p, keep_shapes = TRUE) # simplify polygons

Теперь визуализируйте результат:

> par(mfrow = c(1,2))
> plot(p,  main = paste("before:", object.size(p),  "bytes"))
> plot(p2, main = paste("after:",  object.size(p2), "bytes"))
> dev.off()

введите здесь описание изображения

Вы можете отредактировать настройки по умолчанию для аргумента keep, уменьшив количество сохраняемых точек и, таким образом, еще больше уменьшив размер вашего объекта. Это происходит за счет более грубого изображения.

person Rich Pauloo    schedule 07.09.2018
comment
Спасибо, Рич! Это именно то, что я искал. - person DaveArmstrong; 10.06.2021