0
我在R Markdown/knittr文檔內創建條形圖。我會將圖的垂直尺寸與條形圖中的行數成比例。定製R在迴路內Markdown繪圖大小
編輯:最好的解決方案還可以交叉表和圖。見Interleaving tables and plots in R Markdown, within loop
在這個例子中,具有「3化油器」的汽車的MPG圖與具有「2化油器」的汽車的圖高度相同,即使對於2化油器汽車有三種不同的齒輪配置並且只有一個用於3-Carburetor汽車。
```{r cars, echo=FALSE}
library(ggplot2)
carb.possibilities <- sort(unique(as.character(mtcars$carb)))
filtereds <- lapply(carb.possibilities, function(carb.ct) {
return(mtcars[ mtcars$carb == carb.ct , ])
})
carb.possibilities <- paste(carb.possibilities, ' Carburetors', sep = '')
names(filtereds) <- carb.possibilities
lapply(carb.possibilities, function(one.possibility) {
current.possibility <- filtereds[[one.possibility]]
ggplot(current.possibility, aes(factor(gear), mpg)) +
coord_flip() +
labs(x = "Gears", title = one.possibility) +
geom_point(position=position_jitter(width = 0.1, height = 0.1))
})
```
感謝一個解決方案,我會盡力,明天。也許我應該說,我正計劃在每個情節之間插入一些文本和表格。你是否會與你的解決方案兼容? –
是的......只需使用grid.arrange和height參數,例如grid.arrange(p [[1]],heights = height [1])。你可以做多個圖,如grid.arrange(p [1:2],heights = height [1:2])。 –
就比例圖高度而言,這個解決方案是完美的。從報告到報告的圖表數量不會保持不變,所以我使得圖形高度成比例((fig.height = length(unique(as.character(mtcars $ carb)))* 2)'。我不認爲我理解你對我關於交錯文本的觀點的迴應......如果我將「print(one.possibility)」添加到循環中,那麼所有打印語句都會聚集在頂部,但這也會發生在我現有的代碼。我想我需要發表另一個問題。 –