2012-03-06 9 views
0

における凡例アイテムなどのデータから、使用列Iは、次の形式R:ggplot2

0,q20,q25,q30 
0,32821,2270,68 
1,105586,11366,38 
2,205115,33058,50 
3,311017,70664,151 
4,406328,122150,434 
5,482179,186786,1173 
6,526470,256057,3109 
7,539652,320932,6819 
8,528834,374667,13208 
9,503959,413366,23917 
10,479126,434548,39999 
11,459400,444971,61850 
12,442047,450753,89661 
13,419077,452288,122107 
14,383514,445003,159571 
15,340851,427740,198738 
16,295769,401008,235076 
17,252647,371289,271975 
18,215557,337070,303704 
19,181387,302695,329089 
20,154404,270025,347097 
>20,2949771,4086805,8007677 

にCSVファイルのデータを持っていると私は、次のコード

library(ggplot2) 
    library(reshape2) 
    library(scales) 

    data <- read.csv(file="quality.csv",sep=",",header=TRUE) 
    datam <- melt(cbind(data[,2:ncol(data)],ind = sort(rownames(data))),is.var = c('ind')) 
    datam$ind <- as.numeric(datam$ind) 
    ggplot(datam,aes(x = variable, y = value,fill = factor(as.numeric(ind)))) + 
    geom_bar(position = "fill") + 
    scale_y_continuous(labels = percent_format(), expand=c(0,0)) + 
    scale_fill_discrete("Bases\nunder\nQuality")+xlab("Barcode") + 
    ylab("Reads")+guides(fill = guide_legend(reverse = TRUE))+ 
    opts(axis.text.x=theme_text(hjust=0, size=8), title="Bases Under Quality", plot.title = theme_text(size = 16)) 

て積層パーセントbarplotを作成します enter image description here

凡例の項目は「22」から「1」に変わりますが、その代わりに私はそれらを仔牛に指定された順序で行きたいと思います"> 20"から "0"までの私のデータのt列。どんな助け?

答えて

2

dataの最初の列の値を使用して並列変数ind1を作成し、正しい順序で順序付けられた要素であることを確認するだけで済みます。おそらくこのような何か、:その後、

#I'm calling that first column X0, since that's how it is imported by R 
# Column names can't begin with a digit 
datam$ind1 <- factor(data$X0[datam$ind],levels = data$X0,ordered = TRUE) 

むしろindよりも、あなたのフィル変数としてind1使用。

+0

最後の行は "indではなく、あなたの塗りつぶしの変数として使うべきだと思います" – Marius

+0

@マリアスありがとう、ありがとう! – joran