使用条形图绘制条形图,按组名称分组/着色

Ben*_* B. 1 plot r colors histogram

那么这个CSV格式的数据集,

GO Biological Process,regulation of lipid metabolic process,1.87E-35
GO Biological Process,acute inflammatory response,3.21E-37
GO Biological Process,response to insulin stimulus,1.05E-38
GO Biological Process,steroid metabolic process,4.19E-39
GO Biological Process,cholesterol metabolic process,1.19E-40
GO Biological Process,cellular response to chemical stimulus,5.87E-42
GO Biological Process,alcohol metabolic process,5.27E-43
GO Biological Process,sterol metabolic process,2.61E-43
GO Biological Process,lipid homeostasis,1.12E-44
GO Biological Process,response to peptide hormone stimulus,1.29E-45
GO Biological Process,monocarboxylic acid metabolic process,2.33E-54
GO Biological Process,cellular ketone metabolic process,5.46E-74
GO Biological Process,carboxylic acid metabolic process,2.41E-76
GO Biological Process,organic acid metabolic process,5.30E-79
Pathway Commons,FOXA transcription factor networks,7.40E-61
Pathway Commons,FOXA2 and FOXA3 transcription factor networks,1.39E-64
Transcription Factor Targets,"Targets of HNF6, identified by ChIP-chip in hepatocytes",1.77E-32
Transcription Factor Targets,"Targets of HNF1alpha, identified by ChIP-chip in hepatocytes",3.87E-65
Transcription Factor Targets,"Targets of HNF4alpha, identified by ChIP-chip in hepatocytes",1.38E-131
Run Code Online (Sandbox Code Playgroud)

我想能够创建一个如下所示的情节(条形图?): 在此输入图像描述

第1列中的三个不同组以相同颜色组合在一起,第3列从最大到最小排序.上面的图是用excel制作的,但我希望能够在R中正确使用.到目前为止,我得到的是第2和第3列的绘制,我无法得到按第1列分组的条形图.


好吧,我按照推荐尝试了ggplot.这就是我得到的(它看起来很棒btw):

library(ggplot2)
ggplot(tmp, aes(x=tmp$V2, y=log(tmp$V3), fill=tmp$V1)) +
geom_bar(stat="identity") +
coord_flip() +
scale_y_log()
Run Code Online (Sandbox Code Playgroud)

怎么样

但是,我需要找出如何"反转"轴,如[0,1e-130](例如,条形图从左到右,如上例所示)

And*_*rie 5

ggplotggplot2包装中是相当直接的.您可以通过在绘图中指定填充颜色,并将数据中的列映射到填充来实现此目的,即aes(..., fill=group):

library(ggplot2)
dat <- data.frame(
    label=LETTERS[1:10],
    value=10:1,
    group=letters[c(1,1,2,2,2,3,3,3,3,3)]
)

dat
   label value group
1      A    10     a
2      B     9     a
3      C     8     b
4      D     7     b
5      E     6     b
6      F     5     c
7      G     4     c
8      H     3     c
9      I     2     c
10     J     1     c

ggplot(dat, aes(x=label, y=value, fill=group)) + 
    geom_bar(stat="identity") +
    coord_flip()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述