ggplot2 使用列值作为图例
ggplot2 use column values as legend
如何使用列中的一些自定义值作为图例?我目前
library(ggplot2)
test <- data.frame(condition = as.factor(c("A", "A", "A", "B", "B", "B", "C", "C", "C")),
value = c(4, 5, 2, 3, 4, 5, 7, 1, 0),
color = as.factor(c(1, 1, 1, 1, 1, 1, 2, 2, 2)))
ggplot(
test,
aes(x=condition, y=value, color=color)
) +
geom_boxplot()
这给了我:
但我希望图例包含 3 个项目,每个条件一个(带有自定义标签,当然还有正确的颜色)。我没能做到这一点。即使在没有颜色的更简单的情况下:
ggplot(test, aes(x=condition, y=value)) + geom_boxplot()
我会得到一张没有图例的图像,我真的不知道如何添加一个使用特定列作为数据的图像。
试试这个:
library(ggplot2)
test <- data.frame(condition = as.factor(c("A", "A", "A", "B", "B", "B", "C", "C", "C")),
value = c(4, 5, 2, 3, 4, 5, 7, 1, 0),
color = as.factor(c(1, 1, 1, 1, 1, 1, 2, 2, 2)))
ggplot(
test,
aes(x=condition, y=value, color=interaction(condition,color))
) +
geom_boxplot()+
scale_color_manual(values=c('tomato','tomato','cyan'),
labels=c('1','1','2'))+
labs(color='color')
输出:
如何使用列中的一些自定义值作为图例?我目前
library(ggplot2)
test <- data.frame(condition = as.factor(c("A", "A", "A", "B", "B", "B", "C", "C", "C")),
value = c(4, 5, 2, 3, 4, 5, 7, 1, 0),
color = as.factor(c(1, 1, 1, 1, 1, 1, 2, 2, 2)))
ggplot(
test,
aes(x=condition, y=value, color=color)
) +
geom_boxplot()
这给了我:
但我希望图例包含 3 个项目,每个条件一个(带有自定义标签,当然还有正确的颜色)。我没能做到这一点。即使在没有颜色的更简单的情况下:
ggplot(test, aes(x=condition, y=value)) + geom_boxplot()
我会得到一张没有图例的图像,我真的不知道如何添加一个使用特定列作为数据的图像。
试试这个:
library(ggplot2)
test <- data.frame(condition = as.factor(c("A", "A", "A", "B", "B", "B", "C", "C", "C")),
value = c(4, 5, 2, 3, 4, 5, 7, 1, 0),
color = as.factor(c(1, 1, 1, 1, 1, 1, 2, 2, 2)))
ggplot(
test,
aes(x=condition, y=value, color=interaction(condition,color))
) +
geom_boxplot()+
scale_color_manual(values=c('tomato','tomato','cyan'),
labels=c('1','1','2'))+
labs(color='color')
输出: