R markdown中并排的多个图不是用户友好的

时间:2018-03-12 10:36:33

标签: r r-markdown

R Markdown中的要求

  1. 显示饼图数据
  2. 并排显示数据并且可读
  3. 我是通过'par'和'mfrow'来完成的,这里是带有示例数据的代码

    ```{r warning=F, message=F, echo=F, fig.width=5, fig.height=4}
    per <- c(36,23,13,4,9,15)
    ct <- c(36,23,13,4,9,15)
    name <- c('MS', 'Google', 'Amazon', 'FB', 'IBM', 'AliBaba')
    frame <- data.frame(per,ct,name)
    par( mfrow = c(1,2))
    pie(frame$ct, frame$name, col = rainbow(length(frame$ct)))
    grid.table(frame)
    
    ```
    

    代码问题,情节都互相覆盖 enter image description here

    现在,当我编辑和更改图形宽度时,覆盖问题已得到修复,但文本大小减少为不可读

    ```{r warning=F, message=F, echo=F, fig.width=25, fig.height=20}
        per <- c(36,23,13,4,9,15)
        ct <- c(36,23,13,4,9,15)
        name <- c('MS', 'Google', 'Amazon', 'FB', 'IBM', 'AliBaba')
        frame <- data.frame(per,ct,name)
        par( mfrow = c(1,2))
        pie(frame$ct, frame$name, col = rainbow(length(frame$ct)))
        grid.table(frame)
    ```
    

    enter image description here

    有人可以建议任何更好的方法或我使第二个情节文字更具可读性和可见性的方式。

1 个答案:

答案 0 :(得分:1)

  1. 此解决方案来自此link,应该从SO中的帖子中获取,但我找不到原始帖子。

  2. 我使用knitr::kable()代替grid.table()作为表格。您可以稍后根据自己的喜好修改表格。

  3. <style type="text/css">
    .twoC {width: 100%}
    .clearer {clear: both}
    .twoC .table {max-width: 50%; float: right}
    .twoC img {max-width: 50%; float: left}
    </style>
    
    ```{r pressure, echo=FALSE}
    library(tidyverse)
    per <- c(36,23,13,4,9,15)
    ct <- c(36,23,13,4,9,15)
    name <- c('MS', 'Google', 'Amazon', 'FB', 'IBM', 'AliBaba')
    frame <- data.frame(per,ct,name)
    ```
    <div class="twoC">
    ```{r results = 'asis', echo=FALSE}
    knitr::kable(frame)
    ```
    
    ```{r echo=FALSE}
    pie(frame$ct, frame$name, col = rainbow(length(frame$ct)))
    ```
    </div>
    <div class="clearer"></div>
    

    enter image description here