美国地图上的颜色特定状态

时间:2017-10-27 15:06:50

标签: r ggplot2

我正在使用此ggplot2代码创建美国地图:

library(ggplot2)
all_states <- map_data("state")  
p <- ggplot()
p <- p + geom_polygon( data=all_states, aes(x=long, y=lat, group = group),colour="white", fill="grey30" )

现在我有一组状态,我想画红色和一对我想画绿色。像这样:

states_positive <- c("New York")
states_negative <- c("Texas")

有关如何确保只在地图上以相关颜色突出显示这些状态的任何想法?\

3 个答案:

答案 0 :(得分:2)

您也可以手动添加多边形:

library(ggplot2)
library(dplyr)
all_states <- map_data("state")  
p <- ggplot()
p <- p + geom_polygon( data=all_states, aes(x=long, y=lat, group = group),colour="white", fill="grey30" )


ny <- filter(all_states, region == "new york")
tx <- filter(all_states, region == "texas")


p + geom_polygon(data = ny, aes(x=long, y=lat, group = group),fill="red") +
  geom_polygon(data = tx, aes(x=long, y=lat, group = group),fill="blue")

enter image description here

答案 1 :(得分:1)

{{ myObservable | async}}

然后用另一种颜色重复“否定”。

答案 2 :(得分:1)

James Thomas Durant的答案类似,但更多地反映了数据集的原始结构并减少了所需的短语:

library(ggplot2)
library(dplyr)

all_states <- map_data("state") 
# Add more states to the lists if you want
states_positive  <-c("new york")
states_negative  <- c("texas")

在ggplot中,如果要对同一数据集进行子集化,则可以在第一个ggplot()参数中设置美学,它们将用于绘图中的所有图层。

# Plot results
ggplot(all_states, aes(x=long, y=lat, group = group)) +
  geom_polygon(fill="grey", colour = "white") +
  geom_polygon(fill="green", data = filter(all_states, region %in% states_positive)) +
  geom_polygon(fill="red", data = filter(all_states, region %in% states_negative))

enter image description here

我是StackOverflow的新手,所以不确定这些编辑是否应该是对原始答案做出的,但我觉得这些改动足以让他们自己完成。请说我错了:)