2015-09-02 4 views
1

Я определенно неофит для R для визуализации данных, так что несите меня.Dot Сюжеты с несколькими категориями - 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 

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

Спасибо!

+1

Я бы использовал 'ggplot2' и, в частности, грани, чтобы делать такие виды сюжетов. –

ответ

1

Учитывая вашу [игрушка] данные хранятся в кадре данных называется 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) 

производит

enter image description here

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

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

+0

Если вы хотите, чтобы это было обработано 'пробным' (я назвал его пробным, @Neal называет его' sample'), то последней строкой кода будет 'ggplot (b, aes (переменная, значение)) + geom_point() + facet_wrap (~ trial) ' – PavoDive

+0

Пропущенный фрагмент, если код. См. Редактирование и попробуйте. Дайте мне знать, если это работает – PavoDive

+0

Похоже, что мой набор данных настолько велик (> 15000 строк), что 'a $ trial <-1: length (a)' приводит к ошибке в '$ <-. Data.frame '(' * tmp * '," trial ", value = 1: 8): замена имеет 8 строк, данные 15037'. Есть предположения? Спасибо за вашу помощь, кстати! – Matt

2

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

dotchart(as.matrix(df)) 

dotchart by gene

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

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

dotchart by sample

Смежные вопросы