2012-12-21 15 views
8

मैं विभिन्न आकारों की दो छवियां उत्पन्न करना चाहता था, लेकिन उन्हें साइड-साइड दिखाएं। क्या यह संभव है?knitr: एक-दूसरे के बगल में विभिन्न आकारों के दो भूखंड कैसे दिखाए जाएंगे?

यह काम करता है, लेकिन फिर वे एक ही आकार होना जरूरी:

```{r two_plots_same_size_side_by_side, fig.width=5, fig.height=5} 
    plot(...) 
    plot(...) 
``` 

यह काम नहीं करता है, लेकिन यह Markdown में के बाद से, लाइनों है कि एक ही न्यू लाइन से अलग होते हैं, एक ही पर दिखाई दे सकता लाइन।

```{r normal_plot, fig.width=5, fig.height=5} 
    plot(...) 
``` 
```{r tall_plot, fig.width=5, fig.height=9} 
    plot(...) 
``` 

उत्तर

6

एक अन्य विकल्प, अगर आप एचटीएमएल में आउटपुट out.extra= खंड विकल्प का उपयोग करना है, और उन्हें ब्लॉक के भीतर फ्लोट ऑब्जेक्ट्स सेट करने के लिए सेट करना है। उदाहरण के लिए।

```{r fig.width=4, fig.height=6,echo=FALSE,out.extra='style="float:left"'} 
plot(cars) 
```{r fig.width=8, fig.height=6,echo=FALSE, out.extra='style="float:left"'} 
plot(cars) 
``` 
+1

कि बहुत अच्छा है gridExtra से grid.arrange उपयोग कर सकते हैं। यदि कोई टेक्स्ट है तो मैं दूसरी साजिश के बाद

जोड़ूंगा। धन्यवाद – nachocab

+0

यदि आपके पास कच्चे HTML को शामिल करने का विकल्प है, तो आप उन्हें 'डिस्प्ले: ब्लॉक;' कंटेनर में डालने से बेहतर हो सकते हैं। –

9

एक विकल्प आर आदेशों के साथ एक भी विस्तृत ग्राफ बनाने के लिए और knitr सिर्फ एक से निपटने के लिए ग्राफ, शायद कुछ की तरह देने के लिए होगा:

```{r fig.width=10, fig.height=9} 
layout(cbind(c(0,0,1,1,1,1,1,0,0), rep(2,9))) 
plot(...) 
plot(...) 
``` 
5

फिर भी एक और विकल्प, out.width या out.height के लिए एक वेक्टर उपयोग करने के लिए यदि आप भूखंडों का आकार बदलने के कोई आपत्ति नहीं है, उदाहरण के लिए है

```{r out.width=c('500px', '300px'), fig.show='hold'} 
boxplot(1:10) 
plot(rnorm(10)) 
``` 
+0

यह काम नहीं करता प्रतीत होता है, मुझे आउटपुट के रूप में 4 प्लॉट मिलते हैं। – nachocab

+0

@nachocab क्या आप बुनाई के नवीनतम संस्करण का उपयोग कर रहे हैं? –

+0

मैं नहीं था, धन्यवाद। – nachocab

6

तुम भी जो Grob या ggplot साथ काम करता है वस्तुओं

require(gridExtra) 
pre_fig <- rasterGrob(readPNG("paper_figures/surf_0000.png"), interpolate=TRUE) 
post_fig <- rasterGrob(readPNG("paper_figures/surf_0044.png"), interpolate=TRUE) 
grid.arrange(pre_fig, post_fig, ncol=2) 
संबंधित मुद्दे