2011-11-23 2 views
-8

내가 좋아하는 barplot 생성 데이터의 행렬이 있습니다R : 일종의 barplot 색상

enter image description here

내가 내 barblot이 원하는을 같은 :

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

무엇이 문제입니까? 색상은 항상 올바른 순서로 표시됩니다. 아마도 귀하의 데이터가 귀하의 예에 사용 된 것과 동일하기를 원한다는 뜻입니까? – joran

+0

답장을 보내 주셔서 감사합니다. 예를 들어 모든 파란색 값이 아래쪽에 있어야 할 때가 있습니다. 가끔은 아래쪽에, 때로는 중간에 가끔씩 나타납니다. – Mushal

+2

파란색 값은 아래에 녹색, 노란색 또는 빨간색이 없을 때만 아래에 나타납니다. 두 번째 예에서 초록색과 같습니다. 그 아래에 빨간색이 없기 때문에 두 개가 바닥에 있습니다. –

답변

2

코드를 추가하면 그래프를 재현 할 수 있습니다. 일부 막대에는 파란색 세그먼트가 포함되지 않습니다. 데이터에서 해당 열의 일부 값은 사실 0이기 때문입니다. 그러나 우리는 데이터의 열과 연관된 색상을 재 배열하여 세그먼트의 순서를 다시 정렬 할 수 있습니다 :

같은 것을 생산
#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)]) 

:

enter image description here

그래서 그 카테고리가 0이 아닌 경우, 파란색 부분이 아래쪽에 표시됩니다.

+0

대단히 감사합니다. – Mushal