2016-07-25 818 views
0

這裏我有一個數據幀,包含3264個歸一化數據點,用於34個樣本(3264 x 34)。通過定義休息和標籤ggplot2中的X軸刻度標記

cl21 <- geom_line(aes(y=CL021, col="CL")) 
cl22 <- geom_line(aes(y=CL022, col="CL")) 
cl24 <- geom_line(aes(y=CL024, col="CL")) 
cl25 <- geom_line(aes(y=CL025, col="CL")) 
cl27 <- geom_line(aes(y=CL027, col="CL")) 
cl28 <- geom_line(aes(y=CL028, col="CL")) 
cl30 <- geom_line(aes(y=CL030, col="CL")) 
cl33 <- geom_line(aes(y=CL033, col="CL")) 
cl35 <- geom_line(aes(y=CL035, col="CL")) 
cl36 <- geom_line(aes(y=CL036, col="CL")) 
cl37 <- geom_line(aes(y=CL037, col="CL")) 
cl38 <- geom_line(aes(y=CL038, col="CL")) 
cl39 <- geom_line(aes(y=CL039, col="CL")) 
cl40 <- geom_line(aes(y=CL040, col="CL")) 
ng172 <- geom_line(aes(y=NG172, col="NG")) 
ng176 <- geom_line(aes(y=NG176, col="NG")) 
ng178 <- geom_line(aes(y=NG178, col="NG")) 
ng190 <- geom_line(aes(y=NG190, col="NG")) 
ng191 <- geom_line(aes(y=NG191, col="NG")) 
ng195 <- geom_line(aes(y=NG195, col="NG")) 
ng218 <- geom_line(aes(y=NG218, col="NG")) 
ng232 <- geom_line(aes(y=NG232, col="NG")) 
ng244 <- geom_line(aes(y=NG244, col="NG")) 
ng264 <- geom_line(aes(y=NG264, col="NG")) 
ng285 <- geom_line(aes(y=NG285, col="NG")) 
ng289 <- geom_line(aes(y=NG289, col="NG")) 
ng299 <- geom_line(aes(y=NG299, col="NG")) 
ng302 <- geom_line(aes(y=NG302, col="NG")) 
ng306 <- geom_line(aes(y=NG306, col="NG")) 
ng318 <- geom_line(aes(y=NG318, col="NG")) 
ng320 <- geom_line(aes(y=NG320, col="NG")) 
ng335 <- geom_line(aes(y=NG335, col="NG")) 
ng338 <- geom_line(aes(y=NG338, col="NG")) 
ng367 <- geom_line(aes(y=NG367, col="NG")) 
gplot(normDF, aes(x=pos, y= value))+ cl21 +cl22 +cl24 +cl25 +cl27 +cl28 +cl30 +cl33 +cl35 +cl36 +cl37 +cl38 +cl39 +cl40 + ng172+ ng176+ ng178+ ng190+ ng191+ ng195+ ng218+ ng232+ ng244+ ng264+ ng285+ ng289+ ng299+ ng302+ ng306+ ng318+ ng320+ ng335+ ng338+ ng367 -> p 

我嘗試添加自定義的刻度線沿x軸:

p + xlab("FGD1 exons")+ ylab('Normalized Depth')+ scale_alpha_discrete(breaks= c("327","492","675","822","945","997","1098","1212","1380","1460","1620","1798","1968","2079","2542","2741","2936","3263"), labels= c("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18"))+ theme(axis.text.x = element_text(angle=90,vjust=0.5, size=15,hjust=1)) 

但蜱蟲沒有出現在我的情節我已經使用下面的腳本生成的ggplot!我想知道這裏有沒有人可以爲我提供這方面的建議!

+0

http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – shayaa

+2

你爲什麼用scale_alpha_discrete來控制x軸?沒有'normDF'的 – bouncyball

+2

真的很難幫助你。另外,這個例子可能不是你可以想到的最簡單的例子,它重現了你的問題。另外,這可能不是向劇情中添加一堆不同線條的最簡單方法(請參閱'group'參數) – Chris

回答

2

我認爲你需要使用scale_x_continuous,因爲你的值是連續的。

下面是一個例子,包括MWE,展示瞭如何使用meltreshape2包來簡化事情要做加快你的進程了一下:

library(reshape2) 
library(ggplot2) 

df <- 
    data.frame(
    x = 1:100 
    , ya = 1:100 
    , yb = seq(1,50, length.out = 100) 
    , yc = seq(1,25, length.out = 100) 
    , yd = seq(1,10, length.out = 100) 
) 

melted <- 
    melt(df, id.vars ="x") 

melted$set <- 
    ifelse(melted$variable %in% c("ya","yb") 
     , "set A" 
     , "set B") 

head(melted) 

ggplot(melted 
     , aes(x, value 
      , group = variable 
      , col = set)) + 
    geom_line() + 
    scale_x_continuous(breaks = c(1, 20, 55, 80) 
        , labels = c(1,2,3,4)) 

enter image description here

我錯過了列名稱包含原始設置中的顏色信息,甚至可以使用substr自動執行顏色:

df <- 
    data.frame(
    x = 1:100 
    , CLa = 1:100 
    , CLb = seq(1,50, length.out = 100) 
    , NGc = seq(1,25, length.out = 100) 
    , NGd = seq(1,10, length.out = 100) 
) 

melted <- 
    melt(df, id.vars ="x") 

melted$set <- 
    substr(melted$variable, 1, 2) 

head(melted) 

ggplot(melted 
     , aes(x, value 
      , group = variable 
      , col = set)) + 
    geom_line() + 
    scale_x_continuous(breaks = c(1, 20, 55, 80) 
        , labels = c(1,2,3,4)) 
+0

謝謝Mark,這真的很有幫助! –