如何在ggplot2中使图形颜色取决于两个条件?

5
假设我有一个如下定义的数据框:
x <- seq(0, 10, by = 0.1)
y1 <- sin(x)
y2 <- cos(x)
y3 <- cos(x + pi / 4)
y4 <- sin(x + pi / 4)
df1 <- data.frame(x, y = y1, Type = as.factor("sin"), Method = as.factor("method1"))
df2 <- data.frame(x, y = y2, Type = as.factor("cos"), Method = as.factor("method1"))
df3 <- data.frame(x, y = y3, Type = as.factor("cos"), Method = as.factor("method2"))
df4 <- data.frame(x, y = y4, Type = as.factor("sin"), Method = as.factor("method2"))

df.merged <- rbind(df1, df2, df3, df4)

我希望绘制合并后的数据框,并查看Type和Method标准对数据的影响。可以使用颜色表示Type和线条类型表示Method:

ggplot(df.merged, aes(x, y, colour = Type, linetype = Method)) + geom_line()

当两条曲线具有相同类型但不同的方法并且彼此接近时,有时很难区分它们。

我该如何仅使用颜色来区分类型和方法标准?

1个回答

12

你可以做

ggplot(df.merged, 
       aes(x, y, colour = interaction(Type, Method))) + 
  geom_line()

输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接