ggplot2中的多个图

Posted

技术标签:

【中文标题】ggplot2中的多个图【英文标题】:Multiple plots in ggplot2 【发布时间】:2016-04-22 22:45:21 【问题描述】:

我想为纽约市的犯罪事件制作多个情节(以 r 为单位)。我想为每个辖区(即 78)绘制图。我的数据记录了七种不同类型的犯罪,我想用不同的颜色识别每种犯罪类型。因此,对于每个情节(代表一个辖区),对于不同的犯罪,我都会有不同的颜色。我想在谷歌地球的卫星地图上绘制数据。这是我尝试制作绘图时收到的代码和错误消息:

library(ggmap)
library(ggplot2)

FELONY <- read.csv("http://www.nyc.gov/html/nypd/downloads/excel/crime_statistics/Felony.csv")
felony <- FELONY[FELONY$OccurrenceYear==2015,]
attach(felony)
Sepfel <- felony[felony$OccurrenceMonth== "Sep",]

for(i in unique(Sepfel$Precinct))
    map <- get_map(location='New York City', zoom=11, maptype="satellite")
    ggmap(map) + 
    geom_point(subset(Sepfel,Sepfel$Precint==i),
               aes(color=Offense, x=Longitude, y=Latitude),size=0.00001, alpha=1) +
    ggtitle(paste("September 2015"))
   

Error: ggplot2 doesn't know how to deal with data of class uneval 

【问题讨论】:

【参考方案1】:

我为此演示选择了两个Precinct。你想用 ggplot 对象创建一个列表,绘制和保存地图。有关保存地图的选项,请参阅代码部分中的链接。 baptiste 的回答将帮助您选择保存图像的最佳方式。我希望这会对你有所帮助。

foo <- subset(felony, Precinct %in% c("040", "045"))

mymap <- get_map(location = "New York City", zoom  = 11, maptype = "satellite")

mylist <- lapply(unique(foo$Precinct), function(x)

          g <- ggmap(mymap) + 
               geom_point(data = subset(foo, Precinct == x),
                          aes(color = Offense, x = Longitude, y = Latitude),
                          size = 0.5, alpha = 0.5)
               labs(title = "September 2015")

          g
        
       )

### Credit to baptiste for this answer.
### http://***.com/questions/20500706/saving-multiple-ggplots-from-ls-into-one-and-seperate-files-in-r

invisible(mapply(ggsave, file=paste0("Precinct-", unique(foo$Precinct), ".png"), plot = mylist))

【讨论】:

嗨爵士乐,非常感谢!有效。非常非常非常感谢! @Stone 我很高兴听到这个消息。你会考虑接受答案吗?

以上是关于ggplot2中的多个图的主要内容,如果未能解决你的问题,请参考以下文章

R语言ggplot2可视化:使用plotly包的subplot函数将多个ggplot2可视化结果组合在一起形成组合plotly图(Multiple ggplot2 plots with plotly)

用均值条形图及其标准差 ggplot2 总结数据框

ggplot2一页多图排版的简便方法

带有 facet_grid 的 ggplot2 中具有多个分类变量的堆积条形图

使用 ggplot2 创建条形图并按多个值拆分条形?

如何在 ggplot2 中的 position_dodge 中将单个条形位置与多个条形居中