SORU
13 Kasım 2011, Pazar


Nasıl bir elde 'dengesiz' ggplots ızgara miyim?

grid.arrange gibi bir şey kullanarak çok panelli bir rakam elde etmek için bir kılavuz ggplot birden fazla rakamlar ayarlayabilirim:

    library(ggplot2)
    library(grid)
    library(gridExtra)

bazı ggplot2 araziler oluşturmak

plot5 <- grid.arrange(plot4, plot1, heights=c(3/4, 1/4), ncol=1, nrow=2)

Nasıl bir 'dengesiz' 2 renk, ikinci renk, tüm ilk sütuna bir arsa ve üç araziler ile düzen? edinebilirim Bir '-ızgara-ızgaralar' grid.arrange başka bir komplo karşı bir kılavuz (örneğin plot5) arsa için kullanmaya çalışıyor yaklaşım, ama elde: . ben eğlendi

Error in arrangeGrob(..., as.table = as.table, clip = clip, main = main,  : 
      input must be grobs!

Güncelleme:

Tavsiye için teşekkürler. viewports grid araştıracağım. Bu arada,@, layOut işlevi sayesinde DWin 'wq' paket çok iyi Sweave benim belgede:derleme anlamaya çalıştı enter image description here

Güncelleme 2:

arrangeGrobkomut @baptiste tarafından önerildiği gibi) de iyi çalışıyor, ve çok kolay görünüyor - en azından kolay iki sütun genişliklerini değiştirmek için. Ayrıca gerektirmeyen yararı vardır `wq' paketi.

örneğin Burada Sweave benim dosya: kod

<<label=fig5plot, echo=F, results=hide>>=
plot5<-grid.arrange(plot4, arrangeGrob(plot1, plot2, plot3, ncol=1), 
                    ncol=2, widths=c(1,1.2))
@
\begin{figure}[]
    \begin{center}
<<label=fig5,fig=TRUE,echo=T, width=10,height=12>>=
<<fig5plot>>
@
\end{center}
\caption{Combined plots using the `arrangeGrob' command.}
\label{fig:five}
\end{figure}

aşağıdaki çıktıyı üretir: enter image description here

BTW, Kimse bana neden '>'Görünür? NA

CEVAP
14 Kasım 2011, PAZARTESİ


grid.arrange doğrudan cihaz üzerinde çizer; eğer diğer ızgara nesneleri ile birleştirmek istiyorsanız gibi arrangeGrob, gerekir

 p = rectGrob()
 grid.arrange(p, arrangeGrob(p,p,p, heights=c(3/4, 1/4, 1/4), ncol=1),
              ncol=2)

Edit(07/2015): v>layout_matrix bağımsız değişken kullanabilirsiniz 2.0.0,

 grid.arrange(p,p,p,p, layout_matrix = cbind(c(1,1,1), c(2,3,4)))

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • paikimchung

    paikimchung

    12 Mayıs 2006
  • Tutorials Junction

    Tutorials Ju

    1 Ocak 2014