我正在做一个散点图,有x和y,还有另一个我想要按颜色排序的变量(n=20)。R在光谱中自动选择这些颜色,因此结果图不容易阅读,特别是对于色盲。我能找到的调色板最多只能有8-10种颜色),而且我需要更多的颜色来表示我变量中的值的数量。
我可以在数据点周围添加黑色笔触,但我正在尝试找到一种更改填充的方法。最好给它分配一种我选择的颜色。
+geom_point(aes(fill=genus), pch=21, size=5, colour="black", alpha=0.8)希望这能说得通,我是个新手。
发布于 2021-01-13 14:16:39
有多种方法可以在R中实现你想要的东西,其中一种是在董的评论中的链接中提到的。
另一种方法是创建一个颜色变量并为其赋值,并创建一个带有名称的颜色矢量,该矢量与scale_color_manual中使用的变量相对应
# Sample dataframe
x <- data.frame(x = seq(1, 10, by = 1),
y = seq(1, 10, by = 1),
color = c("color 1", "color 2", "color 3", "color 4", "color 5",
"color 6", "color 7", "color 8", "color 9", "color 10"))
# color map
color_map <- c("red", "green", "yellow", "orange", "black",
"grey50", "blue", "pink", "cyan", "purple")
names(color_map) <- x[["color"]]
library(ggplot2)
ggplot() + geom_point(data = x,
mapping = aes(x = x, y = y, size = 5, color = color)) +
scale_color_manual(values = color_map)

# Another example with less colors and using Hex code instead of color name
x <- data.frame(x = seq(1, 10, by = 1),
y = seq(1, 10, by = 1),
color = c("color 1", "color 2", "color 3", "color 4", "color 5",
"color 1", "color 2", "color 3", "color 4", "color 5"))
# Red Green Yellow Orange Black
color_map <- c("#FF0000", "#00FF00", "FFFF00", "FFA500", "000000")
names(color_map) <- c("color 1", "color 2", "color 3", "color 4", "color 5")
library(ggplot2)
ggplot() + geom_point(data = x,
mapping = aes(x = x, y = y, size = 5, color = color)) +
scale_color_manual(values = color_map)

https://stackoverflow.com/questions/65694613
复制相似问题