我有一个闪亮的应用程序,它需要8年的数据集,并按月进行拆分。然后使用日期滑块,仅使用该月的数据创建ggplot。
正在使用的ggplot是:
ggplot() +
geom_map(
map = wrld, data = wrld, aes(long, lat, map_id=region),
color = "grey", fill ="white", size=0.1
) +
geom_point(
data = dat(), aes(longitude, latitude, size = freq),
shape=21, fill = "red", color = "white", stroke=0.01
) +
scale_size(name = "# IPs", label=scales::comma, range = c(1,10)) +
ggalt::coord_proj("+proj=wintri") +
ggthemes::theme_map() +
theme(legend.justification = "center") +
theme(legend.position = "bottom") +
labs(title=paste("Post frequency ", shiny())) +
annotate("text", x = 0, y = -60, label = "Bots")
反应性元素dat()
和shiny()
是通过以下代码创建的:
shiny <- reactive({
format(as.Date(input$slider), "%Y-%m")
})
dat <- reactive({
count <- count(data.frame(splitted[[shiny()]]))
counted <- ddply(count,"city_name",summarize,longitude=mean(longitude),latitude=mean(latitude),freq=sum(freq))
counted <- counted[order(counted$freq),]
counted[nrow(counted),1] <- "Bots"
counted[nrow(counted),2:3] <- c(0,-55)
counted
})
显示了splitted
的示例:
> head(splitted['2012-07'])
$`2012-07`
city_name longitude latitude dateline ipaddress date
348812 Oak Lawn -87.7516 41.7143 1341093604 67.175.106.62 2012-07-01 00:00:04
348813 Richmond -84.2955 37.7546 1341093617 76.177.28.76 2012-07-01 00:00:17
348814 Lynbrook -73.6741 40.6571 1341093624 72.68.156.111 2012-07-01 00:00:24
348815 Oak Lawn -87.7516 41.7143 1341093680 67.175.106.62 2012-07-01 00:01:20
348816 Las Vegas -115.0669 36.1730 1341093690 24.253.64.114 2012-07-01 00:01:30
348817 Richmond -84.2955 37.7546 1341093698 76.177.28.76 2012-07-01 00:01:38
348818 Cleveland -83.7500 34.5839 1341093716 67.140.236.247 2012-07-01 00:01:56
348819 Las Vegas -115.0669 36.1730 1341093782 24.253.64.114 2012-07-01 00:03:02
348820 Lynbrook -73.6741 40.6571 1341093826 72.68.156.111 2012-07-01 00:03:46
348821 Oak Lawn -87.7516 41.7143 1341093886 67.175.106.62 2012-07-01 00:04:46
闪亮的应用程序正常运行,并且地图正确更新。问题是,图例比例会更新每个地图。结果是,无论实际频率水平如何,地图都“看起来”相同。看一下这两个月:
即使第一张图片中的频率最高为4,000,第二张图片中的频率最高为80,点的大小也相同。查看整个帖子时可以理解其原因每天随着时间推移:
我不是很了解我需要在ggplot上进行哪些更改,以便在所有时间段上强制使用相同的“大小比例”。
可以在https://pastebin.com/WjedbxT3上查看整个app.R文件
很遗憾,我不能共享887,000点的数据集。
答案 0 :(得分:0)
我设法弄清楚了。我以为我已经尝试过了。
scale_size(name = "# IPs", label=scales::comma, range = c(2,25), limits = c(1,5000))