我正在尝试在海洋地图上绘制一些点...这是我的数据框(rik_data
)
location mean_longitude mean_latitude
NSTR002 -63.53341 44.47846
NSTR002 -63.53341 44.47846
NSTR001 -63.52704 44.46643
NSTR001 -63.52704 44.46643
NSTR003 -63.50115 44.41449
HFX014 -63.24095 44.21091
HFX014 -63.24095 44.21091
HFX023 -63.22477 44.19080
HFX0165 -63.21937 44.16828
HFX0165 -63.21937 44.16828
HFX020 -63.20010 44.12228
HFX020 -63.20010 44.12228
我想绘制这些点,以便每个以“ HFX”开头的位置都是一种颜色,而每个以“ NSTR”开头的位置都是另一种颜色。我正在将此代码用于图表。
canada = map_data("worldHires", "Canada")
p = ggplot(data = canada) +
geom_polygon(data = canada, aes(x=long, y = lat, group = group), fill = "lightgrey") +
coord_sf(xlim=c(-64.5,-62.8), ylim=c(42.7,45), expand = FALSE) +
#HOW TO ASSIGN COLOR BY STRINGS?
geom_point(data = rik_data,
mapping = aes(x = mean_longitude,
y = mean_latitude), color = "black",
size = 4, alpha = 0.5) +
labs(colour = "Location") +
theme(panel.background = element_rect(fill = "#add8e6"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.ticks.y = element_blank(),
axis.ticks.x = element_blank(),
axis.title.y =element_blank(),
axis.title.x = element_blank(),
axis.text.x=element_blank(),
axis.text.y = element_blank(),
legend.position = c(0.2, 0.2),
legend.background = element_blank(),
text = element_text(size = 25,
family = "sans"))
有人知道如何将红色分配给以“ NSTR”开头的位置,将黑色分配给以“ HFX”开头的位置吗?
答案 0 :(得分:1)
您可以使用grepl
在ggplot调用中创建分类(假定所有情况均为HFX或NSTR)。用以下内容替换您的geom_point
语句:
geom_point(data = dd,
mapping = aes(x = mean_longitude,
y = mean_latitude,
color = grepl("^HFX",location)),
size = 4, alpha = 0.5) +
scale_color_discrete(breaks=c(0,1),labels=c("NSTR","HFX"))