R ggplot2带有渐变颜色填充的水平条形图
我正在尝试创建水平条形图,并希望根据其对数折叠值填充单个条形图,最低值为白色,最高值为最暗。然而,我无法做到这一点。 这是我的工作,有人能帮我修一下吗R ggplot2带有渐变颜色填充的水平条形图,r,ggplot2,bar-chart,gradient,colorbrewer,R,Ggplot2,Bar Chart,Gradient,Colorbrewer,我正在尝试创建水平条形图,并希望根据其对数折叠值填充单个条形图,最低值为白色,最高值为最暗。然而,我无法做到这一点。 这是我的工作,有人能帮我修一下吗 df <- data.frame(LogFold = c(14.20, 14.00, 8.13, 5.3, 3.8, 4.9, 1.3, 13.3, 14.7, 12.2), Tissue = c("liver", "adrenal", "kidney", "heart", "limb", "adipose",
df <- data.frame(LogFold = c(14.20, 14.00, 8.13, 5.3, 3.8, 4.9, 1.3, 13.3, 14.7, 12.2),
Tissue = c("liver", "adrenal", "kidney", "heart", "limb", "adipose", "brown", "hypothalamus", "arcuate", "lung"))
df1<-df%>%
arrange(desc(LogFold))
ggplot(data=df1, aes(x=Tissue, y=LogFold, fill = Tissue)) +
geom_bar(stat="identity")+
scale_colour_gradient2()+
coord_flip()+
ylim(0, 15)+
scale_x_discrete(limits = df1$Tissue)+
theme_classic()
df希望这能奏效
ggplot(data=df1, aes(x=Tissue, y=LogFold, fill = LogFold)) +
geom_bar(stat="identity",color="black")+
scale_fill_gradient(low="white",high="darkred")+
coord_flip()+
ylim(0, 15)+
scale_x_discrete(limits = df1$Tissue)+
theme_classic()
以下是您需要考虑的问题:
- 对数据帧值进行排序对ggplot没有影响
- 在代码中,您将填充颜色映射到组织,而不是LogFold
- 较新的
geom_col
比geom_bar(stat=…)
- 指定组织的所有值时,不需要对比例进行限制
- 如果要使用渐变填充,请使用
scale\u fill\u gradient2()
- fill=白色在
theme\u classic的白色背景上不可见
所以你可以试试这样的东西:
library(tidyverse)
df1 %>%
ggplot(aes(reorder(Tissue, LogFold), LogFold)) +
geom_col(aes(fill = LogFold)) +
scale_fill_gradient2(low = "white",
high = "blue",
midpoint = median(df1$LogFold)) +
coord_flip() +
labs(x = "Tissue")
但是我不知道颜色梯度在解释信息方面真的增加了什么。下面是没有它的结果,由你来判断:
df1 %>%
ggplot(aes(reorder(Tissue, LogFold), LogFold)) +
geom_col() +
coord_flip() +
labs(x = "Tissue") +
theme_classic()