ggplot:使用 2 个以上的因素设置颜色
ggplot: Set colours with 2+ factors
我有一个包含 2 个因子的数据集,每个因子有 2 个水平。我想制作一个有 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"))
我得到了 this 图表。
有没有办法让这张图的条形从左到右变暗 red/light red/dark yellow/light 黄色?从而以red/yellow划定群体,以黑暗划定试炼类型?
非常感谢!
Mrinmayi
基本上是这样,使用interaction
为每个组合得到一个独特的颜色:
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"))
剧情是这样的。
我有一个包含 2 个因子的数据集,每个因子有 2 个水平。我想制作一个有 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"))
我得到了 this 图表。
有没有办法让这张图的条形从左到右变暗 red/light red/dark yellow/light 黄色?从而以red/yellow划定群体,以黑暗划定试炼类型?
非常感谢!
Mrinmayi
基本上是这样,使用interaction
为每个组合得到一个独特的颜色:
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"))
剧情是这样的。