R ggplot2使用列值作为图例

R ggplot2使用列值作为图例,r,ggplot2,legend,R,Ggplot2,Legend,如何使用列中的一些自定义值作为图例?我现在有 library(ggplot2) test <- data.frame(condition = as.factor(c("A", "A", "A", "B", "B", "B", "C", "C", "C")), val

如何使用列中的一些自定义值作为图例?我现在有

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()
我将得到一个没有图例的图像,我真的不知道如何添加一个使用该特定列作为数据的图像。

试试这个:

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')
库(ggplot2)
测试试试这个:

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')
库(ggplot2)

测试这没有给我正确的颜色。根据我的数据框的
color
列,我希望A和B具有相同的颜色。@piegames嗨,我已经为您更新了代码。希望对你有帮助!是的,谢谢你!我还通过使用
values=brewer.pal(3,“Dark2”)[c(1,1,2)]
@piegames插入了一个调色板,太棒了!如果这个答案在任何意义上帮助你考虑可能接受它。亲切的问候和感谢!我本来打算这么做的,但我以为我还在“新问题计时器”上。这并没有给我正确的颜色。根据我的数据框的
color
列,我希望A和B具有相同的颜色。@piegames嗨,我已经为您更新了代码。希望对你有帮助!是的,谢谢你!我还通过使用
values=brewer.pal(3,“Dark2”)[c(1,1,2)]
@piegames插入了一个调色板,太棒了!如果这个答案在任何意义上帮助你考虑可能接受它。亲切的问候和感谢!我本来打算这么做的,但我以为我还在“新问题计时器”上。