我很困惑为什么我的点颜色不正确。我已经设置了自己的调色板并使用它来定义 geom_point() 的颜色,但实际绘制的颜色是不正确的。
colfunc <- colorRampPalette(c("black", "#FFAFAF"))
plot(rep(1,41), col=colfunc(41), pch=19, cex=3)
cols <- colfunc(41)
df$cols <- cols[df$num]
baseMap <- ggplot(data = world) +
geom_sf(color = "black", fill = "grey") +
geom_point(data = df,
mapping = aes(x = lon, y = lat, col = cols[num])) +
xlab("Longitude") + ylab("Latitude")
baseMap
我创建的调色板如下所示:
但这会产生以下颜色:
为什么这些颜色不匹配?
谢谢
我尝试了多种不同的设置 aes() 的方法,但无法弄清楚为什么颜色不匹配
您需要
scale_colour_manual()
或类似的。
我们没有您的df
。这是基于另一个df
的示例:
library(ggplot2)
colfunc <- colorRampPalette(c("black", "#FFAFAF"))
# plot(rep(1,41), col=colfunc(41), pch=19, cex=3)
cols <- colfunc(41)
world <-ggplot2::map_data(map = "world")
set.seed(1)
df <- data.frame(lon = runif(41, min(world$long), max(world$long)),
lat = runif(41, min(world$lat), max(world$lat)),
id = 1:41, cols = cols)
ggplot(world, aes(x = long, y = lat)) +
geom_polygon(aes(group = group), colour = "grey") +
geom_point(data = df,
mapping = aes(x = lon, y = lat,
colour = factor(id))) +
scale_colour_manual(values = df$cols) +
xlab("Longitude") + ylab("Latitude")
创建于 2023-11-18,使用 reprex v2.0.2