cowplot plot_grid berfungsi untuk memplot tabel sebagai gambar dan dendrogram

Saya mencoba menggunakan fungsi plot_grid dari cowplot untuk membuat plot khusus dengan dendrogram di baris atas dan dua tabel (bersebelahan) di baris kedua. Sekarang yang terjadi adalah dendrogram dan tabel saya diplot, tetapi pada dua PDF terpisah. Apakah ada cara agar semuanya berada pada halaman yang sama? Di bawah ini cuplikan kode saya:

 pdf("test.pdf", width = 12, height = 10)
 x <-tableGrob(frames[[1]])
 y <-tableGrob(frames[[2]])
 plot.clus <-plot(test1,label=diseaseDuration,main=label)
 tables<-grid.arrange(x,y,nrow=1)
 plot_grid(bottom_row,tables)

cuplikan keluaran dput untuk pengelompokan (hclust):

 structure(list(merge = structure(c(-61L, -41L, -49L, 1L, -16L...), 
 height = c(4.23833720098634e-13, 6.36507320251999e-13.......),
 order = c(5L, 57L, 12L, 7L, 66L, 31L, 55L, 6L, 10L, 37L,..),
 labels = c("ABC00001", "ABC00002", "ABC00003",......),
 method = "ward.D", 
 call = hclust(d = data, method = "ward.D"), dist.method = 
 "euclidean"), .Names = c("merge", "height", "order", "labels", "method", "call", "dist.method"), class = "hclust")

person Mdhale    schedule 28.04.2017    source sumber


Jawaban (1)


Gunakan plot.clus sebagai pengganti z plot

library( 'ggplot2' )
library( 'cowplot' )
library( 'gridExtra' )

x <- tableGrob( d = data.frame( x = 1:5, y = 1:5 ) )
y <- tableGrob( d = data.frame( x = 1:5, y = 1:5 ) )
z <- ggplot( data = data.frame( x = 1:5, y = 1:5 ), 
             mapping = aes( x = x, y = y ) ) + 
  geom_line( color = 'red' )

p <- ggdraw() +
  draw_plot( plot = z, x = 0, y = .5, width = 1, height = .5 ) +  # z
  draw_plot( plot = x, x = 0, y = 0, width = .5, height = .5 ) +  # x
  draw_plot( plot = y, x = .5, y = 0, width = .5, height = .5 ) + # y 
  draw_plot_label( label = c( "A", "B", "C" ),                    # labels
                   x = c( 0, 0, 0.5 ),
                   y = c( 1, 0.5, 0.5 ), 
                   size = 16 )
# save plot as pdf
save_plot( filename = "test.pdf", plot = p, base_height = 4, base_width = 4 )
person Sathish    schedule 28.04.2017
comment
Sathish, terima kasih atas tanggapan Anda. Cara di atas tidak berfungsi karena plot.clus saya bukan objek kelas ggplot atau gtable. Saya mendapatkan kesalahan berikut: Kesalahan dalam ggplot_to_gtable(plot): Argumen harus dari kelas ggplot atau gtable - person Mdhale; 28.04.2017
comment
posting data Anda digunakan untuk diagram cluster dengan melakukan dput(data). apakah Anda menggunakan algoritma cluster hierarki? - person Sathish; 28.04.2017
comment
silakan tambahkan output perintah dput di pertanyaan Anda, bukan di bagian komentar - person Sathish; 28.04.2017
comment
Sathish: Ya, saya menggunakan pengelompokan hierarki. Saya telah menambahkan contoh keluaran dput saya. - person Mdhale; 28.04.2017
comment
data yang Anda berikan di sana tidak akan membantu. Anda sebaiknya mencoba ggdendro mengemas sendiri untuk membuat dendrogram yang kompatibel dengan ggplot. - person Sathish; 28.04.2017
comment
Terima kasih Satish, itu membantu. Saya punya satu pertanyaan, bagaimana cara mengurangi tinggi tabel yang diperoleh dari tableGrob? - person Mdhale; 29.04.2017
comment
Tablegrob memiliki argumen tema yang dapat digunakan untuk menyesuaikan berbagai parameter. Google untuk tablegrob dan tema - person Sathish; 29.04.2017