使用plotly :: api_create和ggplot2 :: geom_sf函数时文件太大

时间:2018-09-24 14:55:02

标签: r plotly shapefile sf

我正在尝试在R中使用plotly进行空间数据的在线绘制,但收到错误消息“请求实体太大,该文件太大!您当前的订阅限制为524 KB上传。”关于如何解决的任何线索?为了重现我的代码,您需要(i)在plotly上注册,以及(ii)下载我的github repo上可用的法语部门的shapefile。这三个文件应位于名为 shapefile 的文件夹中。在我看来,是 ggplot2 函数 geom_sf 产生的文件太大。我的代码在下面

require(tidyverse)
require(ggplot2)

#Info required for online plotting 
Sys.setenv("plotly_username"="replace_by_your_username")
Sys.setenv("plotly_api_key"="replace_by_your_apikey")

#Read shapefile
dep <- sf::st_read("replace_with_the_correctPATH/shapefile/DEPARTEMENT.shp")

#Variable to plot
zz<-runif(length(dep$CODE_DEPT),-10,3)

#ggplot2 object
gg <- dep %>%
mutate(discrete = cut(zz, c(-10, seq(-3, 3, by = 1)))) %>%
ggplot() +
geom_sf(aes(fill = discrete, text = paste("Department:", dep$CODE_DEPT, "<br>", "bli", zz))) +
scale_fill_brewer(palette = "PuOr", name = "bla")

#Plotting the figure on your local computer works
#plotly::ggplotly(gg, tooltip = c("text"))

#Generate an error message
plotly::api_create(gg, tooltip = c("text"),filename = "sthing")

1 个答案:

答案 0 :(得分:0)

这似乎不是您的问题,但我遇到了同样的事情。对于将来的读者,我的问题似乎是我正在使用的数据框(例如100行)是来自大型数据集(15,000行)的子集,该子集大于文件限制。

尽管我的子集很小,并且在上传限制之内,但我不得不将子集另存为csv,重新加载回去,并使用新加载的数据框作为我的密谋上传。即使导入的数据框与子集数据框的行数相同,我也不得不中断子集与原始较大数据集的连接,不知道为什么。