【问题标题】:Creating US Map Including State Borders in ggvis在 ggvis 中创建包括州界的美国地图
【发布时间】:2015-01-22 15:41:19
【问题描述】:

我正在尝试制作一张美国地图,以后可以添加交互式图层。但是,根据创建的多边形,似乎存在顺序问题;我已经以几种不同的方式订购了它们,但它们似乎都不能正常工作。任何帮助将不胜感激。

library(ggplot2) 
library(ggvis) 
library(dplyr) 

mdat<-map_data("state") 

mdat %>% 
  arrange(group,order) %>% 
  ggvis(x=~long,y=~lat) %>% 
  layer_paths() 

【问题讨论】:

  • 大概是这样。 mdat %&gt;% group_by(group) %&gt;% ggvis(x=~long,y=~lat) %&gt;% layer_paths()
  • 我有扩展示例说明如何执行此操作(地图和交互)here。对于更复杂的 shapefile,我也必须使用 group_by(group, region)

标签: r rstudio interactive ggvis


【解决方案1】:

我从链接到的帖子中提取了一个更完整的示例(包括对美国 48 个州使用更合理的投影):

library(ggplot2)
library(ggvis)
library(dplyr)
library(rgdal)
library(httr)

# decent US shapefile and httr lets us only d/l when needed
stop_for_status(GET("http://eric.clst.org/wupl/Stuff/gz_2010_us_040_00_500k.json",
                write_disk("us.geojson"), progress()))

states <- readOGR("us.geojson", "OGRGeoJSON")
states <- states[!states$NAME %in% c("Alaska", "Hawaii", "Puerto Rico", "District of Columbia"),]
states_aea <- spTransform(states, CRS("+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs"))

states_map <- fortify(states_aea, region="NAME")

states_map %>%
  group_by(group) %>%
  ggvis(~long, ~lat) %>%
  layer_paths(strokeOpacity := 0.5, strokeWidth := 0.5) %>%
  hide_axis("x") %>% hide_axis("y") %>%
  set_options(width=960, height=600, keep_aspect=TRUE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2012-07-06
    • 2016-10-15
    • 1970-01-01
    • 2016-03-21
    相关资源
    最近更新 更多