ggplot2(版本3)与geom_density_2d的ggmap不兼容

时间:2018-07-05 18:43:07

标签: r ggplot2 tidyverse

ggplot2版本3在使用ggmap函数添加图层时似乎与geom_density2d()不兼容。以下代码返回错误(尽管适用于ggplot2版本2):

# Create a data frame
df <- data.frame(
  long = rnorm(50, -122.32, .2), 
  lat = rnorm(50, 47.6, .2) 
)

# Use qmplot to create a base layer of map tiles
base_plot <- qmplot(
  data = df, 
  x = long, # data feature for longitude
  y = lat, # data feature for latitude
  geom = "blank", # don't display data points (yet)
  maptype = "toner-background", # map tiles to query
  darken = .7, # darken the map tiles
  legend = "topleft" # location of legend on page
)

# Show the map in RStudio
base_plot

# Use ggplot to create a 2d density map (without tiles -- works fine)
ggplot(df, aes(x = long, y = lat)) + 
  geom_density2d() + 
  stat_density_2d(
    aes(x = long, y = lat, fill = stat(level)), # in v2, fill = ..level..
    # Use the computed density to set the fill
    alpha = .3,
    geom="polygon" # Set the alpha (transparency)
  )

# Add 2d density plot on map tiles -- returns an error
base_plot + 
  geom_density2d() + 
  stat_density_2d(
    aes(x = long, y = lat, fill = stat(level)), # in v2, fill = ..level..
    # Use the computed density to set the fill
    alpha = .3,
    geom="polygon" # Set the alpha (transparency)
  )

# Error in width_cm(guide$barwidth %||% theme$legend.key.width) : 
 # Unknown input

任何有关如何使用geom_density2d()qmplot()地图添加图层的指导都将不胜感激!

(使用ggplot2第2版创建的图像的下方映射) Map created with geom_density

1 个答案:

答案 0 :(得分:0)

通过@Tung在评论中得到答案:问题出在ggmap上,解决方案是使用开发版的ggmap(devtools::install_github("dkahle/ggmap")