Adjusting figure margins in Rmarkdown

穿精又带淫゛_ 提交于 2019-12-10 13:54:27

问题


I am trying to adjust the piechart figure in my Rmarkdown document so that it spans the width of the page or at least becomes wide enough to fit all of the labels.

I have tried everything - adjusting figure.height and figure.width, margins with par(mar) and par(oma), but nothing seems to work. Either the pies themselves become smaller, or the labels are even more cut off. I would like the pies to be as large as possible with clearly visible labels, but every time it renders small pies and tiny labels.

Is there a workaround at least so that labels are not cut off (or can overlap the adjacent chart)? Any suggestions would be appreciated.

```{r, figure.align = "center", figure.height = 10, figure.width = 12}

par(mfrow=c(1,3), cex.axis=1.5, cex.lab=1.5) 
par(mar = c(4,2,4,2))
par(oma = c(3, 3, 3, 3))
pie(a, labels = lbls,  font = 2, col = c("tomato", "white"), cex=2)
pie(b, lbls2, font = 2, col = c("tomato", "white"), cex=2) 
mtext(side=3, text="Plan Breakdown: Top 20% of Users")
pie(c, lbls3,  font = 2, col = c("tomato", "white"))


回答1:


You might try using the chunk option 'out.width'. Here is the Rmd file that I used. I think that it does what you want.

    ---
    output: pdf_document
    ---


    ```{r, out.width='\\textwidth', fig.height = 8, fig.align='center'}
    pie(c(0.57, 0.43), font = 2, col = c("tomato", "white"))

    pie(c(0.57, 0.43), font = 2, col = c("blue", "orange"))
    ```



回答2:


I had the same problem, seems some cropping is applyied by default, adding this in the yaml-header worked for me:

output: 
  pdf_document: 
    fig_crop: no



回答3:


Your figure size is constrained by the document margins unless you specify an out.width. If your figure width is larger than the margins of the page, then R Markdown/knitr will create a figure of the specified aspect ratio but shrink it down to fit within the margins.

To solve this, use out.width to set the width and height of the plot in the pdf. Something like:

```{r, fig.align = "center", fig.height = 8, fig.width = 8,
    out.width = "8.5in"}

pie(a, labels = lbls,  font = 2, col = c("tomato", "white"), cex=2)
pie(b, lbls2, font = 2, col = c("tomato", "white"), cex=2) 
mtext(side=3, text="Plan Breakdown: Top 20% of Users")
pie(c, lbls3,  font = 2, col = c("tomato", "white"))
````

See this page on knitr chunk options for more information.



来源:https://stackoverflow.com/questions/43195871/adjusting-figure-margins-in-rmarkdown

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!