Построение гистограммы с барами по группам / раскраска по именам групп - PullRequest
0 голосов
/ 01 августа 2011

Хорошо с этим набором данных в формате 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

Я хотел бы иметь возможность создать график (barplot?), Который выглядит следующим образом: enter image description here

гдетри разных группы в столбце 1 объединены в один и тот же цвет, а третий столбец отсортирован от самого большого до самого маленького.График выше сделан с Excel, но я хотел бы иметь возможность сделать его правильно в R. До сих пор все, что я получаю, это 2-й и 3-й столбцы, я не могу получить столбцы, сгруппированные по 1-му столбцу.


Ну, я попробовал ggplot, как рекомендовано.Вот что я получил (это выглядит блестяще):

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

how

Однако мне нужно выяснить, как «повернуть» ось, например [0, 1e-130] (например, столбцы идут слева направо, как в моем примере выше)

1 Ответ

5 голосов
/ 01 августа 2011

Это достаточно просто с ggplot в пакете ggplot2. Этого можно добиться, указав цвет заливки на графике и сопоставив столбец в ваших данных с заливкой, т.е. 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()

enter image description here

...