2016-07-26 6 views
0

edcf行を描画したいdata.frameがあります。約96ポジションのECDF系統と96系統のネガティブECDF系統が存在する。私はpos線を黒く、neg線を赤色にしたいと思います。私はまた、透明度のレベル、または平均線を追加して、混乱しないようにしたいと思います。そして、おそらく、伝説にposとnegを含めるだけです。ggplot2のstat_ecdf行に基づくサンプルデリミタの色付け

コード:

simplify <- function(x){ 
    temp = x[complete.cases(x),] 
    df.m = reshape2::melt(temp, id.vars = NULL) 
    df.m$XIST = sapply(strsplit(as.character(df.m$variable), "_", fixed=TRUE), function(x) (x[1])) 
    return(df.m) 
} 
temp = simplify(X_chr) 
ggplot(temp, aes(value, colour=variable)) + stat_ecdf() + xlim(1,1000) + theme_bw() 

Tempは次のようなものになります。

> head(temp, 10) 
    variable value XIST 
1 pos_A1 0.00000 pos 
2 pos_A1 0.00000 pos 
3 pos_A1 0.00000 pos 
4 pos_A1 0.00000 pos 
5 pos_A1 0.00000 pos 
6 pos_A1 15.66911 pos 
7 pos_A1 0.00000 pos 
8 pos_A1 0.00000 pos 
9 pos_A1 0.00000 pos 
10 pos_A1 0.00000 pos 

> tail(temp, 10) 
     variable  value XIST 
210999 neg_H9 0.000000 neg 
211000 neg_H9 0.000000 neg 
211001 neg_H9 0.000000 neg 
211002 neg_H9 0.000000 neg 
211003 neg_H9 0.000000 neg 
211004 neg_H9 4.466276 neg 
211005 neg_H9 0.000000 neg 
211006 neg_H9 0.000000 neg 
211007 neg_H9 0.000000 neg 
211008 neg_H9 30.033764 neg 

を生成します:

enter image description here

+0

あなたは私の答えの横のチェックマークをクリックすることで、この質問を閉じることができます。 – shayaa

答えて

1

次の時間reproducible exampleを投稿してください。

scale_color_manualを使用してカスタム凡例を指定するだけで済みます。

df <- reshape2::melt(replicate(10,rnorm(100)^2)) 
df$Var2 <- paste0(c(rep("pos", 500), 
        rep("neg", 500)), 
        df$Var2) 
ggplot(df, aes(x = value, colour=Var2)) + stat_ecdf() + 
    xlim(0,3) + theme_bw() + 
    scale_color_manual(label = stringr::str_sub(unique(df$Var2),1,3), 
        values = c(rep('red',5), rep("blue",5))) 

enter image description here

あなたが完全な変数名をしたい場合は、単に次のようにマニュアルの凡例を指定することができ、あなたの最後の質問については

scale_color_manual(label = unique(df$Var2), 
        values = c(rep('red',5), rep("blue",5))) 

に関連するコードを交換してください。あなたがタイトルに多くの名前を付けて指定した問題にぶつかるため、私はdfのサイズを増やしました。

df <- reshape2::melt(replicate(100,rnorm(100)^2)) 
df$Var2 <- paste0(c(rep("pos", 500), 
        rep("neg", 500)), 
        df$Var2) 
ggplot(df, aes(x = value, group=Var2, 
       color = c(rep('red',5e3), rep("blue",5e3)))) + 
     stat_ecdf() + 
    xlim(0,3) + theme_bw() + 
    scale_colour_manual("+ or -", 
         values = c("red", "blue"), 
         labels = c("pos", "neg")) 

enter image description here

関連する問題