r - Knitr :图例太大

标签 r ggplot2 knitr figure

当我编织 Tufte 讲义 pdf 时,某些人物的图例通常太大。我正在织一个 fig.fullwidth=TRUE部分并已更改 fig.width=从 2 到 50 的参数,看看它们是否有任何区别。当我指定 fig.width=2我最终得到一个小人物,图例大大扩展以填充空间:

Knitted figure with fig.width = 2

显然下一步是尝试更大的fig.width但是这些在大约 fig.width=10 之后就不再有任何区别了。 (虽然还是更好):

Knitted figure with fig.width = 10

我假设 fig.width 是以英寸为单位的宽度,所以这是有道理的,因为我使用的纸张尺寸是 A4,所以大约 8 英寸。

我的问题是,如何进一步减小图例的大小以使其占据更合适的大小?我试过手动设置字体大小:

theme(legend.title = element_text(size = 9),
      legend.text = element_text(size = 8))

但这些对 knitr 图例没有影响(尽管按预期手动绘制时它们确实会影响情节)。

最小可重现示例(粘贴到 .Rmd 文件中并编织):
---
title: "knitr: figure legend too big"
documentclass: article
classoption: a4paper
output: rmarkdown::tufte_handout
---

  ```{r setup, include=FALSE}
require("knitr")
require("rgdal")
require("rgeos")
require("maptools")
require("ggplot2")
```

```{r, fig.cap="test", fig.fullwidth=TRUE, fig.width=10}
# About 650k
download.file("https://census.edina.ac.uk/ukborders/easy_download/prebuilt/shape/England_gor_2011_gen.zip",
              destfile = "regions.zip")
unzip("regions.zip")
regions <- readOGR(dsn = ".", "england_gor_2011_gen")
regions@data$test <- as.character(1:nrow(regions@data))

regions_f <- fortify(regions, region = "name")
regions_f <- merge(regions_f, regions@data, by.x = "id", by.y = "name")

ggplot() +
  geom_polygon(data = regions_f, aes(long, lat, group = group, fill = test),
               colour = "black") +
  coord_equal() +
  theme(legend.title = element_text(size = 9),  # doesn't seem to make
      legend.text = element_text(size = 8))     # a difference to knitr
```

与往常一样,感谢您查看此内容。

最佳答案

我认为这是因为 map 必须将纵横比设置为 1 . tufte::tufte_handout()中的默认图形高度是2.5,所以即使图形宽度大到10,实际 map 大小仍然是2.5 x 2.5。当你增加fig.width ,还需要增加fig.height ,例如

```{r, fig.cap="test", fig.fullwidth=TRUE, fig.width=6, fig.height=6}

实际上,当您只设置 fig.width=10 时, 针织 确实生成了 10 x 2.5 PDF 图像,但是 Markdown 默认情况下启用了图形裁剪功能,因此裁剪了图形左侧和右侧的大白边,最终得到了 2.5 x 2.5 的图形。

关于r - Knitr :图例太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35771212/

相关文章:

r - 使用 dplyr 汇总并统计分组 df 中唯一值的数量

r - theme_bw() 去除了我的 ggplot 上的所有颜色

r - R中的百分比格式表

r - 用 knitr markdown 并排的两个 block

r - ggplot2:在 ROC 图上使用 scale_x_reverse

从编织器输出中删除进度条

r - 基于波的振幅数据的R谱图

r - 如何在 purrr::pmap 中 fork /并行化进程

r - 使用 foreach 函数和 doParallel 库在 R 中嵌套 for 循环

r - 如何在 ggplot2 中删除点和扩展箱线图