我正在使用此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")
有关如何确保只在地图上以相关颜色突出显示这些状态的任何想法?\
答案 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")
答案 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))
我是StackOverflow的新手,所以不确定这些编辑是否应该是对原始答案做出的,但我觉得这些改动足以让他们自己完成。请说我错了:)