2015-06-26 4 views
1

Это может быть повторение, но я не смог найти решение. Итак, я хочу построить график участка генома, а внизу - график дорожки гена ниже.Комбинированный график, отличающийся значениями оси X

Line PlotGene Track

Проблема Я столкнуться в том, что ось х связана в обоих участках, так что я в конечном итоге потери линии графика и дорожки гена, как и в следующей картине:

Combined Line plot & Gene Track

код, я использую для этого (пример данных) выглядит следующим образом:

library(ggplot2) 
library(ggbio) 
library(TxDb.Hsapiens.UCSC.hg19.knownGene) 
library(Homo.sapiens) 

BOD<-matrix(c(1,8.3,"Group1",2,10.3,"Group1",3,19,"Group1",1,16,"Group2",2,17.6,"Group2",3,19.8,"Group2"),nrow=6,ncol=3,byrow=TRUE) 
BOD<-data.frame(BOD) 
names(BOD)<-c("Time","Demand","Category") 
p1<-ggplot(BOD, aes(x=factor(Time), y=Demand, colour=Category, group=Category)) + geom_line() 
p.txdb <- autoplot(Homo.sapiens, which = GRanges("chr1",IRanges(183800615, 183960615))) 
tracks('Methylation'=p1,'Gene Track'=p.txdb) 

Как бы я начал рисовать оба изображения с их собственной отдельной осью х? поэтому я вижу оба сюжета.

+1

Возможно, это связано с аргументом 'fixed' в' track'? – aosmith

+0

Попробуйте преобразовать p1 и p.txdb в grobs и установите их ширины, равные друг другу. (Http://stackoverflow.com/questions/31009337/align-graphs-with-different-xlab/31034670#31034670) –

ответ

0

Мы можем использовать cowplot пакет:

# instead of autoplot use ggplot geom_alignment 
p.txdb <- ggplot() + 
    geom_alignment(Homo.sapiens, 
       which = GRanges("chr1", IRanges(183800615, 183960615))) 

# cowplot* to merge 
cowplot::plot_grid(p1, p.txdb, nrow = 2, 
        labels = c("LinePlotLabel", "GeneTrackLabel")) 

enter image description here

Примечание: Не загружайте cowplot с помощью library(), это изменит темы по умолчанию. Кроме того, обратите внимание, что я использую geom_alignment() вместо autoplot().

Смежные вопросы