【R】世界の地震情報をggplotで可視化

世界にも大きな地震がたくさんあります。アメリカの地質調査所(USGS)にて世界の地震の情報を公開しています。JSONでデータを取得できますので、取得したデータをggplotで可視化します。2016年10月1日~2017年10月1日に発生した地震を50件取得して世界地図に表示しています。

library(magrittr)
library(httr)
library(dplyr)

  base.url <- "http://earthquake.usgs.gov/fdsnws/event/1/"
req <- paste0(base.url, "version") %>% GET()
req %>% status_code()
res <- paste0(base.url, "query") %>% 
  GET(query = list(format = "geojson",
                   starttime = "2016-10-01",
                   endtime = "2017-10-01",
                   limit = "50")) %>%
  content(as = "text", encoding = "UTF-8")

res %>% substr(1, 50)

library(rgdal)
df.sp <- readOGR(res, "OGRGeoJSON", stringsAsFactors=FALSE )
isS4(df.sp)
slotNames(df.sp)
df.sp@data %>% glimpse()

library(ggplot2)
library(maps)

world <- map_data("world")
worldmap <- ggplot(world, aes(x=long, y=lat, group = group)) + 
  geom_path() +
  scale_x_continuous(breaks = (-2:2) * 30) +
  scale_y_continuous(breaks = (-4:4) * 45)

earthquake<- worldmap + geom_point(data = as.data.frame(df.sp),
                      aes(x=coords.x1, y=coords.x2,
                          group = magType,
                          shape = magType,
                          size = mag))

print(earthquake)

参考:Rによるスクレイピング入門 C&R研究所 

Add a Comment

メールアドレスが公開されることはありません。