1

次のグラフがあるとしましょう。 ここに画像の説明を入力

そして、最初の行の2番目のグラフのみを選択したいです。以下のようにggplot関数でこれを行うにはどうすればよいですか:

plotAll<-function(data,size=2, alpha=0.4){
  combs <- expand.grid(names(data), names(data))
  out <- do.call(rbind, apply(combs, 1, function(x) {
    tt <- data[, x]; names(tt) <- c("V1", "V2")
    tt <- cbind(tt, id1 = x[1], id2 = x[2])
  }))

  library(plyr)
  df.text=ddply(out[out$id1==out$id2,],.(id1,id2),summarise,
                pos=max(V1)-(max(V1)-min(V1))/2)
  out[out$id1==out$id2,c("V1","V2")]<-NA
  out$labels <- rownames(out)
  out$labels<-sapply(out$labels, function(x){
    strsplit(x, "_")[[1]][1]
  })

  fam<-read.table('input/genomic_info_subset.tsv', sep='\t')

  idx<-match(out$labels,fam$V1)
  newcol<-fam$V4[idx]
  newcol<-as.character(newcol)
  out$fam<-newcol

  ggplot(data = out, aes(x = V2, y = V1)) +
    geom_text(data = out[!is.na(out$V1),], aes(label = labels, colour=fam), size=size, alpha=alpha) +
    facet_grid(id1 ~ id2,scales="fixed")+
    geom_text(data=df.text,aes(pos,pos,label=id1)) + geom_abline( slope=1 ) + 
    ggtitle("Corralation between measured & calculated affinities") +
    ylab("") + xlab("") + theme(panel.grid.minor.x=element_blank(), panel.grid.major.x=element_blank())
}

コードのどこかで、1 行目の 2 行目だけを選択してください。それとも、関数からデータ フレームを抽出するだけで、プロット 1 を分離するよりも簡単ですか? この関数が私の質問を再現するのに不適切であることはわかっています。これが本当に必要な場合は、.tsv を提供してデータを出力します。

4

1 に答える 1

0

最も簡単な解決策は、最初の行の 2 番目の列に関連するデータのみにデータをサブセット化することです。これらの種類のファセット プロットからプロットを抽出することはおそらく可能ですが、簡単ではありません。

于 2013-05-14T08:47:34.160 に答える