R ggplot:使用2+设置颜色;因素

R ggplot:使用2+设置颜色;因素,r,ggplot2,fill,geom-bar,R,Ggplot2,Fill,Geom Bar,我有一个包含两个因子的数据集,每个因子有两个级别。我想制作一个有4种不同颜色的分组条形图 数据如下所示: TrialType Group yvar TP C 1 TP E 2 TA C 3 TA E 4 我用这个来制作条形图,使用 ggplot(data=k, aes(x=V2, y=V3, fill=V1)) + geom_bar(stat="identity", position="dod

我有一个包含两个因子的数据集,每个因子有两个级别。我想制作一个有4种不同颜色的分组条形图

数据如下所示:

TrialType Group yvar
TP         C     1
TP         E     2
TA         C     3
TA         E     4
我用这个来制作条形图,使用

ggplot(data=k, aes(x=V2, y=V3, fill=V1)) + 
  geom_bar(stat="identity", position="dodge", color="#000000") + 
  scale_fill_manual(values=c("#d7191c", "#FFBB45"), breaks=c("TA", "TP"))
我得到了图表

有没有办法让这个图从左到右变成深红色/浅红色/深黄色/浅黄色?因此,根据红色/黄色划分各组,根据黑暗划分试验类型

非常感谢

Mrinmayi

基本上是这样的,使用
交互
为每个组合获得唯一的颜色:

ggplot(data=k, aes(x=Group, y=yvar, fill=interaction(TrialType,Group))) + 
  geom_bar(stat="identity", position="dodge", color="#000000")+
  scale_fill_manual(values = c("dark red", "pink", "yellow", "light yellow"))

基本上是这样的,使用
交互
为每个组合获得唯一的颜色:

ggplot(data=k, aes(x=Group, y=yvar, fill=interaction(TrialType,Group))) + 
  geom_bar(stat="identity", position="dodge", color="#000000")+
  scale_fill_manual(values = c("dark red", "pink", "yellow", "light yellow"))

您需要通过组合前两个因子变量来创建一个新变量,并将其用作aes()中的填充。见下文

library(tidyverse)

k <- tibble(TrialType=c("TP","TP","TA","TA"),
            Group=c("C","E","C","E"),
            yvar=c(1:4))

k$TrialType <- as.factor(k$TrialType)
k$Group <- as.factor(k$Group)

k$var4 <- as.factor(paste(k$TrialType, k$Group))

ggplot(data=k, aes(x=Group, y=yvar,fill=var4)) + 
  geom_bar(stat="identity", position="dodge", color="#000000") + 
  scale_fill_manual(values=c("#C70039","#FFC300","#FF5733","#DAF7A6"))
库(tidyverse)

k您需要通过组合前两个因子变量来创建一个新变量,并将其用作aes()中的填充。见下文

library(tidyverse)

k <- tibble(TrialType=c("TP","TP","TA","TA"),
            Group=c("C","E","C","E"),
            yvar=c(1:4))

k$TrialType <- as.factor(k$TrialType)
k$Group <- as.factor(k$Group)

k$var4 <- as.factor(paste(k$TrialType, k$Group))

ggplot(data=k, aes(x=Group, y=yvar,fill=var4)) + 
  geom_bar(stat="identity", position="dodge", color="#000000") + 
  scale_fill_manual(values=c("#C70039","#FFC300","#FF5733","#DAF7A6"))
库(tidyverse)

这也行!!我以前尝试过组合这些因素,但最终用它来设置x,并在条形图簇之间“注入”空间,但那绝对是一场噩梦!谢谢你的解决方案!这也行!!我以前尝试过组合这些因素,但最终用它来设置x,并在条形图簇之间“注入”空间,但那绝对是一场噩梦!谢谢你的解决方案!