Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot2带有渐变颜色填充的水平条形图_R_Ggplot2_Bar Chart_Gradient_Colorbrewer - Fatal编程技术网

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()