在ggplot2上接收状态缩写

时间:2017-02-16 03:58:04

标签: r ggplot2

所以我修改了形状配置文件以添加夏威夷和阿拉斯加,因此我的数据框使用的是不同的长,纬度坐标,而不是maps包(map_data("state"))提供的库存状态坐标,如下所示< / p>

states <- data.frame(state.center, state.abb)
states
           x       y state.abb
1   -86.7509 32.5901        AL
2  -127.2500 49.2500        AK
3  -111.6250 34.2192        AZ
4   -92.2992 34.7336        AR
5  -119.7730 36.5341        CA

我的数据框的坐标如下。

enter image description here

当我使用下面的代码绘制它时,我得到一张没有任何州缩写标签的地图。

p <- function(data, brks, title) {
  ggp <- ggplot() + 
    geom_polygon(data = data, aes(x = long, y = lat, group = group, 
                                  fill = IMSUB), color = "black", size = 0.15) + 
    scale_fill_gradient2(limits=c(-1,1), breaks = c(-1, 0, 1), labels=c("Trump", 0, "Clinton"), low = "red", mid = "white",
                         high = "blue", midpoint = 0, space = "Lab",
                         na.value = "grey50", guide = "colourbar") + 
    theme_nothing(legend = TRUE) + labs(title = title, fill = "") + 
    geom_text(data = states, aes(x = x, y = y, label = state.abb), size = 3)
  return(ggp)
}

enter image description here

我觉得我可以将states数据框中的坐标替换为us50中的坐标,但我不确定如何正确替换它们。

1 个答案:

答案 0 :(得分:0)

您是否尝试过aes()内的尺寸?

 geom_text(data=state, aes(x y, label = state.abb, size=3)

如果没有,这个其他方法可能会起作用,只需替换geom_text行:

with(states, annotate(geom="text", x = x y=y, label = state.abb, size = 3)) 

它应该使用状态应用注释,作为x和amp;的文本。你作为你的拉特和长......这应该有用。