【问题标题】:Map using ggplotly not showing correctly (R)使用 ggplotly 的地图显示不正确(R)
【发布时间】:2019-02-06 09:40:22
【问题描述】:

我使用 ggplot 制作了一张地图,并使用 ggplotly 绘制了它。

当它在 ggplot 中时,它看起来像这样:

但是用ggplotly显示的时候是这样的:

正如您所看到的,各个区域有点乱七八糟,没有清晰的边界,而且填充有点沙哑,好像是很多线条而不是填充。此外,工具提示大部分都说“trace 11”之类的内容,偶尔会显示相关数据。

这是我正在使用的代码的核心:

random_map <- ggplot()  +
  geom_map(data = random_data, aes(map_id = random_data$ï..CCG, fill = random_data$Number),  
      map = CCGshape) +
  geom_polygon (data = CCGshape, aes(x = long, y = lat, group = group),
      colour = "azure4", size = 0.01, fill = NA) +
  expand_limits(x = CCGshape$long, y = CCGshape$lat) +
  coord_equal ()

random_plotly <- ggplotly(random_map)

我使用的 shapefile 是 here

这是我正在使用的数据的头部:

structure(list(Number = c(1, 0.4, 0.9, 0.3, 0.3, 0.7), 
CCG = c("NHS Airedale, Wharfedale and Craven CCG", 
"NHS Barnsley CCG", "NHS Bassetlaw CCG", "NHS Bradford Districts CCG", 
"NHS Calderdale CCG", "NHS Bradford City CCG")), .Names = c("Number", 
"CCG"), row.names = c(NA, 6L), class = "data.frame")

任何想法我做错了什么?

【问题讨论】:

    标签: r ggplot2 maps r-plotly ggplotly


    【解决方案1】:

    plotly 似乎不支持 geom_map(据我所知)。相反,看看here。有一个包sf 描述了一个名为geom_sf 的新geom,它可能会解决您的问题。 plotly 网站提供了支持heregeom 的示例。

    可能还值得注意的是,ggplotly 是一种解决方法,在我看来,ggplot 的语法比 plotly 的更清晰。话虽如此,如果您希望情节在反应式上下文中运行良好,最好按照情节希望的方式进行,即包含在 these 教程之一中的内容。

    【讨论】:

      【解决方案2】:

      根据@bk18 的建议和plotly website,我做了以下简单示例。我在您发布的链接中使用了 shapefile,所以我认为它可以绘制您所追求的地图。我已经用ccg18cd字段随意填充了,但是你可以随意改变填充。

      library(plotly)
      library(sf)
      
      ccg <- sf::st_read("Clinical_Commissioning_Groups_April_2018_Ultra_Generalised_Clipped_Boundaries_in_England.shp")
      
      ccg_plot <- ggplotly(ggplot(ccg) + geom_sf(aes(fill = ccg18cd)))
      

      这将生成以下绘图,带有标记的工具提示并填充了多边形。

      【讨论】:

      • 谢谢,这是一个非常有用的例子!
      猜你喜欢
      • 2016-07-23
      • 2020-02-25
      • 2021-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 2014-04-04
      • 1970-01-01
      相关资源
      最近更新 更多