在这个简单的示例中,我创建了一个带有颜色名称的变量。
df <- mtcars %>%
mutate(color = "green",
color = replace(color, cyl==6, "blue"),
color = replace(color, cyl==8, "red"))
运行下面的代码可以正常工作。
ggplot(df, aes(wt, mpg)) +
geom_point(color = df$color)
如果我想使用geom_line创建三行-绿色,蓝色和红色怎么办?
ggplot(df, aes(wt, mpg, group=cyl)) +
geom_line(color = df$color)
如何使用带有颜色名称的变量来分配不同线条的颜色?
答案 0 :(得分:3)
我认为您正在寻找scale_color_identity
ggplot(df, aes(wt, mpg)) +
geom_point(aes(color = color)) +
scale_color_identity(guide = "legend") # default is guide = "none"
这是各自的线图
ggplot(df, aes(wt, mpg)) +
geom_line(aes(color = color)) +
scale_color_identity(guide = "legend")
答案 1 :(得分:0)
您可以使用自定义色阶:
ggplot(df, aes(wt, mpg, group=cyl)) +
geom_line(aes(color = color)) +
scale_color_manual(values = c("blue"="blue","red"="red","green"="green"))
答案 2 :(得分:-1)
简短的回答:您不能。您已经设置了变量,可以在创建的变量中设置颜色。
但是,默认情况下,ggplot
中有一种方法可以做到这一点:
mtcars$cyl <-as.factor(mtcars$cyl) ## set mtcars$cyl as factors (i.e use exact values in column)
ggplot(mtcars, aes(x=wt, y= mpg, color = cyl)) +
geom_point()+
scale_color_manual(breaks = c("8", "6", "4"),
values=c("red", "blue", "green"))+ ## adjust these if you want different colors
geom_line()
将行留出...