减少图的文件大小 (R) (plotly)
Reduce file size of a plot (R) (plotly)
我使用 ggplotly 在 R 中创建了一个地图。要创建 link,它需要为 524kb 或以下,但目前为 1.2Mb。有没有什么好的方法可以减少文件大小以便我可以导出它?或者这完全不现实?
如果您的地图有多边形,请考虑 rmapshader::ms_simplify()
,它使用 Visvalingam algorithm 减少用于构造多边形的点数。
这是一个可重现的例子:
> 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
参数的默认设置,减少要保留的点数,从而进一步减小对象大小。这是以更粗糙的图像为代价的。
我使用 ggplotly 在 R 中创建了一个地图。要创建 link,它需要为 524kb 或以下,但目前为 1.2Mb。有没有什么好的方法可以减少文件大小以便我可以导出它?或者这完全不现实?
如果您的地图有多边形,请考虑 rmapshader::ms_simplify()
,它使用 Visvalingam algorithm 减少用于构造多边形的点数。
这是一个可重现的例子:
> 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
参数的默认设置,减少要保留的点数,从而进一步减小对象大小。这是以更粗糙的图像为代价的。