Точечные участки с несколькими категориями - R

Я определенно неофит R для визуализации данных, так что терпите меня.

Я собираюсь создать точечные графики рядом друг с другом из семи категориальных образцов со многими значениями экспрессии генов, соответствующими именам отдельных генов. Файл mydata.csv выглядит следующим образом

B27      B28      B30      B31 LTNP5.IFN.1 LTNP5.IFN.2 LTNP5.IL2.1
1 13800.91 13800.91 13800.91 13800.91    13800.91    13800.91    13800.91
2  6552.52  5488.25  3611.63  6552.52     6552.52     6552.52     6552.52
3  3381.70  1533.46  1917.30  2005.85     3611.63     4267.62     5488.25
4  2985.37  1188.62  1051.96  1362.32     2717.68     2985.37     5016.01
5  1917.30  2862.19  2625.29  2493.26     2428.45     2717.68     4583.02
6   990.69   777.97  1269.05  1017.26     5488.25     5488.25     4267.62

Я хотел бы, чтобы каждый пример данных был организован в своем точечном графике на одном графике. Кроме того, если бы я мог указать отдельные данные, представляющие интерес, это было бы здорово.

Спасибо!

2 ответа

Решение

Учитывая, что ваши [игрушки] данные хранятся во фрейме данных под названием a:

library(reshape2)
library(ggplot2)
a$trial<-1:dim(a)[1]  # also, nrow(a)
b<-melt(data = a,varnames  = colnames(a)[1:7],id.vars = "trial")
b$variable<-as.factor(b$variable)
ggplot(b,aes(trial,value))+geom_point()+facet_wrap(~variable)

производит

Что мы сделали: загрузили необходимые библиотеки (reshape2 конвертировать из широкого в длинный и ggplot2 чтобы, ну, сюжет); meltредактировал данные в длинном формате (труднее читать, легче обрабатывать), а затем наносил на график ggplot,

Я ввел trial чтобы указать на каждый "прогон" каждой переменной был измерен, и поэтому я построил trial против value на каждом уровне variable, facet_wrap часть помещает каждый участок в область подзаголовка, определяемую variable,

Вы можете использовать базу R, но вам нужно конвертировать в matrix первый.

dotchart(as.matrix(df))

точечная диаграмма по гену

или мы можем транспонировать матрицу, чтобы упорядочить ее по образцу:

dotchart(t(as.matrix(df)))

точечная диаграмма по образцу

Другие вопросы по тегам