【问题标题】:Size of font in ggplot plot changes in relation to plot using knitrggplot 绘图中的字体大小相对于使用 knitr 的绘图发生变化
【发布时间】:2016-03-09 16:05:24
【问题描述】:

我第一次使用 knitr,但在 ggplot 图中的字体大小存在问题。这是一个示例图:

d <- ggplot(diamonds, aes(x = cut, y = clarity))
d + stat_sum(aes(label=..n..),geom="text",size=8)

在 knitr 中,我的 R 降价中的一个块中有相同的情节:

---
title: "Untitled"
output: html_document
---
```{r, echo=FALSE}
library(ggplot2)
d <- ggplot(diamonds, aes(x = cut, y = clarity))
d + stat_sum(aes(label=..n..),geom="text",size=8)
```

绘图在 RStudio 中或使用 ggsave() 保存时看起来不错。然而,生成的 knitr html 中的绘图中的数字总体上和相对于绘图大小的字体大小要大得多:

在这个例子中,这并不重要,但在我的数据中,数字开始相互重叠/耗尽它们的单元格。

另一个复杂之处是绘图是由一个包完成的,所以我不能轻易更改 stat_sum 调用中的大小选项。

【问题讨论】:

    标签: r plot ggplot2 knitr


    【解决方案1】:

    尝试调整fig.heightfig.width

    ---
    title: "Untitled"
    output: html_document
    ---
    ```{r, echo=FALSE,fig.height=10,fig.width=10}
    library(ggplot2)
    d <- ggplot(diamonds, aes(x = cut, y = clarity))
    d + stat_sum(aes(label=..n..),geom="text",size=8)
    ```
    

    如果不想图那么大,可以调整out.heightout.width

    ---
    title: "Untitled"
    output: html_document
    ---
    ```{r, echo=FALSE,fig.height=10,fig.width=10,out.height=600,out.width=600}
    library(ggplot2)
    d <- ggplot(diamonds, aes(x = cut, y = clarity))
    d + stat_sum(aes(label=..n..),geom="text",size=8)
    ```
    

    【讨论】:

    • 这行得通,谢谢。仍然不明白为什么会改变相对于绘图大小的字体,但我现在很高兴。
    • 刚刚注意到虽然情节现在看起来不错,但我用 fig.cap="foobar" 添加的标题消失了。是不是在情节“背后”?
    • 您已将其设置为输出为 html 文档。鼠标悬停时会显示此模式下的标题。运行后是否将 html 转换为其他内容?
    • 我刚刚看到这是预期的行为:github.com/rstudio/rmarkdown/issues/174
    • 关于字体大小的变化,knitr使用的默认“设备”的尺寸与你的R控制台使用的设备的大小不同,所以字体大小实际上是一样的在这两种情况下,实际情节的大小都会发生变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2020-12-12
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多