0

私はほぼ完璧なグラフを作成しました。しかし、注釈付きの領域 geom_text() からグリッドを削除する方法に行き詰まっています。値をプロットし、プロットに注釈を付けるために geom_text を使用します。

私のグラフは次のようになります。 ここに画像の説明を入力

私のデータ:

structure(list(Mash_pear = c(0.328239947270445, 0.752207607551684, 
0.812118104861163, 0.640824971449627, 0.615568052052443, 0.546635339103089, 
0.557460706464288, 0.650480192893698, 0.418044504894929, 0.52962586938499, 
0.727805116980878, 0.457751406173336, 0.429785015765779, 0.395830424689082, 
0.442222743260579, 0.296983456365718, 0.80883682959008, 0.81208596690244, 
0.710216015384062, 0.773625942359682), tRap_pear = c(0.0350096175177328, 
0.234255507711743, 0.23714999195134, 0.185536020521134, 0.191585098617356, 
0.201402054387186, 0.220911538536031, 0.216072802572045, 0.132247101763063, 
0.172753098431029, 0.280795579672784, 0.188134155907737, 0.217454200485912, 
0.0696965676717436, 0.233870791415384, 0.0544299934337156, 0.226678897883402, 
0.128806853122092, 0.117478493999246, 0.161184511733104), Beeml_pear = c(0.179209909971615, 
0.79129167285928, 0.856908302056589, 0.729078080521886, 0.709346164378725, 
0.669599784720647, 0.585348196746785, 0.639355942917055, 0.544909349368496, 
0.794652394149651, 0.863422091668162, 0.595508977637756, 0.533923256060852, 
0.843786110234149, 0.402095177866003, 0.293984533306754, 0.867067527220569, 
0.883565060756018, 0.727331622602897, 0.860485005688852), Mash_pear50 = c(0.192474082559755, 
0.679726904159742, 0.778564545349054, 0.573745352397321, 0.56633658385284, 
0.472559997318901, 0.462635414367878, 0.562128414492567, 0.354624921832056, 
0.64532681437697, 0.699503386816393, 0.384318378224603, 0.366299448984722, 
0.46938310547208, 0.282831366512569, 0.227004236832775, 0.754840213343737, 
0.763285417222461, 0.638421127411269, 0.719475286983103)), .Names = c("Mash_pear", 
"tRap_pear", "Beeml_pear", "Mash_pear50"), row.names = c("Aft1", 
"Alx3_3418.2", "Alx4_1744.1", "Arid3a_3875.1_v1_primary", "Arid3a_3875.1_v2_primary", 
"Arid3a_3875.2_v1_primary", "Arid3a_3875.2_v2_primary", "Arid5a_3770.2_v1_primary", 
"Arid5a_3770.2_v2_primary", "Aro80", "Arx_1738.2", "Ascl2_2654.2_v1_primary", 
"Ascl2_2654.2_v2_primary", "Asg1", "Atf1_3026.3_v1_primary", 
"Atf1_3026.3_v2_primary", "Bapx1_2343.1", "Barhl1_2590.2", "Barhl2_3868.1", 
"Barx1_2877.1"), class = "data.frame")

グラフを作成するためのコード:

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
  require(ggplot2)
  ggplot(data = out, aes(x = V2, y = V1)) +
    geom_text(data = out[!is.na(out$V1),], aes(label = labels), size=size, alpha=alpha) +  geom_abline( slope=1 ) +
    facet_grid(id1 ~ id2, scales="fixed")+
    geom_text(data=df.text,aes(pos,pos,label=id1), size=15)  + 
    ggtitle("Corralation between measured & calculated affinities") +
    ylab("") + xlab("") + theme(strip.text=element_blank(), strip.background=element_blank()) +
    theme(plot.title=element_text(face="bold.italic",size="60", color="brown")) +
    theme(axis.title=element_text(face="bold.italic",size="40", color="darkorange4"))
    #return(out)
}

私が望むのは、Mash_pear、tRap_pear、Beeml_pear、Mash_pear50 など、中央の注釈プロットから傾斜線とグリッドを削除することです。名前だけを保持して勾配とグリッドを削除したいので、素敵な白/壊れた白の​​背景とテキスト注釈のみです。関数から 2 番目の geom_text の aes にテーマを追加しようとしましたが、機能しません。また、annotate()代わりに使用しようとしgeom_text()ましたが、これにより多くの aes() エラーなどが発生しました。

4

1 に答える 1

2

geom_rect()線と灰色の背景の上に白い長方形を追加するために使用できます。この行をfacet_grid()との行の間に挿入しgeom_text()ます。この目的のために、df.textテキスト ラベルのプロットに使用されるのと同じデータ フレームを使用できます。

+ geom_rect(data=df.text,aes(xmin=-Inf,xmax=Inf,ymin=-Inf,ymax=Inf),
        fill="white",inherit.aes=FALSE)
于 2013-06-03T12:44:29.043 に答える