在这个简单的示例中,我创建了一个包含颜色名称的变量。
df <- mtcars %>%
mutate(color = "green",
color = replace(color, cyl==6, "blue"),
color = replace(color, cyl==8, "red"))
Run Code Online (Sandbox Code Playgroud)
运行下面的代码可以按预期工作。
ggplot(df, aes(wt, mpg)) +
geom_point(color = df$color)
Run Code Online (Sandbox Code Playgroud)
如果我想使用 geom_line 创建三条线——绿色、蓝色和红色,该怎么办?
ggplot(df, aes(wt, mpg, group=cyl)) +
geom_line(color = df$color)
Run Code Online (Sandbox Code Playgroud)
如何使用带有颜色名称的变量来分配不同线条的颜色?
我想你正在寻找scale_color_identity
ggplot(df, aes(wt, mpg)) +
geom_point(aes(color = color)) +
scale_color_identity(guide = "legend") # default is guide = "none"
Run Code Online (Sandbox Code Playgroud)
这是各自的线图
ggplot(df, aes(wt, mpg)) +
geom_line(aes(color = color)) +
scale_color_identity(guide = "legend")
Run Code Online (Sandbox Code Playgroud)