R: сортировать цвета барплота - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть матрица данных, которая генерирует барплот, как:

enter image description here

Я хочу, чтобы мой барлот был таким:

enter image description here

Где, как я отмечаю в комментариях, синие сегменты всегда должны быть внизу.Это мой код R:

file<-read.csv(file="file.csv", sep="\t", header=T)
    m<-table(file)
    m
         path
    mir              cp eip gip mt os
      aga-bantam      0   0   0  4  0
      aga-let-7       0   0   0  2  5
      aga-miR-1       0   0   0  3  0
      aga-miR-10      0  11   9  2  0
      aga-miR-100     4   0   0  0  0
      aga-miR-1000    2   2   0 15  0
      aga-miR-11      5   0   0  0  0
      aga-miR-1174    4   0   0 10  0
      aga-miR-1175    0   0   0  6  0
      aga-miR-12      0   3   0  0  0
      aga-miR-124     0   0   0  8  0
      aga-miR-133     0   5  19  0  0
      aga-miR-137     0   0   2  0  0
      aga-miR-13b     0   0   9  0  0
      aga-miR-184     0   0   0  9  2
      aga-miR-1889    0   0  11  2  0
      aga-miR-1890    0   0   5 11  0
      aga-miR-1891    0   0   0  3  0
      aga-miR-190     0   4   0 13  0
      aga-miR-2       0   0  10  0  0
      aga-miR-210     0   0   0  4  0
      aga-miR-219     0   3   5  0  0
      aga-miR-263     0   2   0  0  7
      aga-miR-263b    0   3   0 16  4
      aga-miR-275     0   4   0  7  2
      aga-miR-276-3p  0   0   4 20  0
      aga-miR-276-5p  2   0   0  4  0
      aga-miR-277     0   0   0 20  0
      aga-miR-278     0   0   0  3  0
      aga-miR-279     0   5   0  0  0
      aga-miR-281     6   5   4  5  0
      aga-miR-282     4   2  15  4  0
      aga-miR-283     0   0   7  1  0
      aga-miR-305     0   3   5 10  0
      aga-miR-307     0   0   0  4  0
      aga-miR-308     0   0   0  0  2
      aga-miR-309     0   0   0  9  0
      aga-miR-315     0   0   0 13  0
      aga-miR-317     0   0   0  4  2
      aga-miR-34      0   3   0  3  0
      aga-miR-375     0   0   0  2  2
      aga-miR-7       0   0   0 10  0
      aga-miR-79      0   0   0  5  0
      aga-miR-8       0   0   3  2  0
      aga-miR-87      5   2   4  0  0
      aga-miR-927     0   0  11  0  0
      aga-miR-929     0   0   0  3  0
      aga-miR-92a     0   0  10  4  0
      aga-miR-92b     0   2   9  0  0
      aga-miR-957     0   0   0  8  0
      aga-miR-965     5   0   0 10  0
      aga-miR-970     0   0   7  5  0
      aga-miR-981     0   4   0  4  0
      aga-miR-989     0   0   0  8  0
      aga-miR-993     0   2   0  3  0
      aga-miR-996     0   0   3  2  0
      aga-miR-9a      0   0   0  3  0
      aga-miR-9b      5   0   0  2  0
      aga-miR-9c      0   0   0  5  0
      aga-miR-iab-4   5   0   0  0  0

    barplot (t(m),col=rainbow(5),las=2)

1 Ответ

2 голосов
/ 25 ноября 2011

С вашим добавленным кодом я могу воспроизвести ваш график.Обратите внимание, что некоторые столбцы не содержат синий сегмент, поскольку в ваших данных некоторые значения в этом столбце фактически равны нулю.Но мы можем изменить порядок сегментов, переставив столбцы ваших данных и связанных с ними цветов:

#You data was a table, but it was easier for me to copy+paste
# it and then read it as a data.frame
m <- read.table("~/Desktop/stackoverflowExamples/so.txt",header = TRUE,sep = "")
#Move the first column over to be the rownames
rownames(m) <- m[,1]
m <- m[,-1]

#Note that I just rearranged each piece so that the blue
# segments will be first; this includes the color and 
# legend text ordering
barplot(t(m[,c(4,1:3,5)]),col=rainbow(5)[c(4,1:3,5)],
        las=2,cex.names = 0.5,
        legend.text = colnames(m)[c(4,1:3,5)])

, что выдает что-то вроде этого:что когда эта категория не равна нулю, синий сегмент будет внизу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...