样本数据集:
library(ggplot2)
df = read.table(text =
"id year value1 value2 value3
1 2000 1 2000 2001
1 2001 2 NA NA
1 2002 2 2000 NA
1 2003 2 NA 2003
2 2000 1 2001 2003
2 2002 2 NA 2000
2 2003 3 2002 NA
3 2002 2 2001 NA
", sep = "", header = TRUE)
df$value1 <- as.factor(df$value1)
Run Code Online (Sandbox Code Playgroud)
我知道如何改变三个级别的因子变量的颜色:
p <- ggplot(df, aes(y=id))
p <- p + scale_colour_manual(name="", values =c("yellow", "orange", "red"))
p <- p + geom_point(aes(x=year, color=value1), size=4)
p
Run Code Online (Sandbox Code Playgroud)
我还可以更改两个数字变量的颜色:
p <- ggplot(df, aes(y=id))
p <- p + scale_colour_manual(name="", values =c("value3"="grey", "value2"="black"))
p <- p + geom_point(aes(x=value3, colour ='value3'), size=3)
p <- p + geom_point(aes(x=value2, colour ='value2'), size=5)
p
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在同一个图表中更改两者的颜色?它是否也适用于scale_color_manual?
p <- last_plot() + geom_point(aes(x=year, color=value1))
p
Run Code Online (Sandbox Code Playgroud)
Bri*_*ggs 23
这是你想要的?
ggplot(df, aes(y=id)) +
geom_point(aes(x=year, color=value1), size=4) +
geom_point(aes(x=value3, colour ='value3'), size=3) +
geom_point(aes(x=value2, colour ='value2'), size=5) +
scale_colour_manual(name="",
values = c("1"="yellow", "2"="orange", "3"="red",
"value3"="grey", "value2"="black"))
Run Code Online (Sandbox Code Playgroud)

基本上,只需将所有可能的颜色标签放在一个列表中.