R 情节+;ggplot2:添加图层会使工具提示消失
使用ggplot2和plotly,我可以轻松创建US county choropleth并设置自定义工具提示。但是,当我添加状态边界时,工具提示在某些情况下无法呈现。这个问题似乎与接近国家边界有关。这可能是什么原因造成的,如何修复 首先,添加第二层完全破坏工具提示的示例R 情节+;ggplot2:添加图层会使工具提示消失,r,ggplot2,plotly,R,Ggplot2,Plotly,使用ggplot2和plotly,我可以轻松创建US county choropleth并设置自定义工具提示。但是,当我添加状态边界时,工具提示在某些情况下无法呈现。这个问题似乎与接近国家边界有关。这可能是什么原因造成的,如何修复 首先,添加第二层完全破坏工具提示的示例 library(plotly) library(tidyverse) ### One layer -- works fine a <- data.frame(group = seq(3085), val = rnorm(
library(plotly)
library(tidyverse)
### One layer -- works fine
a <- data.frame(group = seq(3085), val = rnorm(3085)) %>%
left_join(ggplot2::map_data("county"), by = "group")
p <- ggplot(a, aes(long, lat, group = group)) +
geom_polygon(aes(fill = val, text = subregion))
ggplotly(p, tooltip="text")
### Two layers -- no tool tips
b <- ggplot2::map_data("state")
p <- ggplot(a, aes(long, lat, group = group)) +
geom_polygon(aes(fill = val, text = subregion)) +
geom_path(data = b, color = "black")
ggplotly(p, tooltip="text")
library(plotly)
图书馆(tidyverse)
###一层——很好用
a%
左联合(ggplot2::地图数据(“县”),由=“组”)
p我甚至不能让第一个为我运行(这可能是由于ggplot的dev版本中的更改),但我怀疑问题是您的后续层正在覆盖以前的层。无论最后添加的是什么,都会在顶部结束,因此请尝试在州之后添加县。如果在州之后添加县,则填充(来自geom_多边形)将绘制在直线上(来自geom_路径),因此它不会按该顺序工作。我正在使用ggplot2_2.1.0。我确认,如果您使用dev ggplot2安装plotly,您会收到一个错误。我甚至无法运行第一个版本(这可能是由于ggplot的dev版本发生了更改),但我怀疑问题是您的后续层正在覆盖以前的层。无论最后添加的是什么,都会在顶部结束,因此请尝试在州之后添加县。如果在州之后添加县,则填充(来自geom_多边形)将绘制在直线上(来自geom_路径),因此它不会按该顺序工作。我正在使用ggplot2_2.1.0。我确认,如果使用dev ggplot2进行plotly安装,则会出现错误。
### Just Delaware: shows tool tips
b <- ggplot2::map_data("state") %>%
filter(region == "delaware")
a <- data.frame(group = seq(3085), val = rnorm(3085)) %>%
left_join(ggplot2::map_data("county"), by = "group") %>%
filter(region == "delaware")
p <- ggplot(a, aes(long, lat, group = group)) +
geom_polygon(aes(fill = val, text = subregion)) +
geom_path(data = b, color = "black")
ggplotly(p, tooltip="text")
### New England: *sometimes* shows tool tips
new_england <- c("maine", "new hampshire", "vermont", "massachusetts", "connecticut", "rhode island")
b <- ggplot2::map_data("state") %>%
filter(region %in% new_england)
a <- data.frame(group = seq(3085), val = rnorm(3085)) %>%
left_join(ggplot2::map_data("county"), by = "group") %>%
filter(region %in% new_england)
p <- ggplot(a, aes(long, lat, group = group)) +
geom_polygon(aes(fill = val, text = subregion)) +
geom_path(data = b, color = "black")
ggplotly(p, tooltip="text")