如何显示真正高大的ggplot?

Ale*_*lex 0 r ggplot2 rstudio knitr

例如,在尝试显示带有一百行的刻面图时:

library(ggplot2)
set.seed(111)
tmp_d <- data.frame(group = rep(1:100, each = 5), 
                    x = rep(1:5, times = 100),
                    y = runif(1:500))
## looks like
#   group x         y
# 1     1 1 0.5929813
# 2     1 2 0.7264811
# 3     1 3 0.3704220
# 4     1 4 0.5149238
# 5     1 5 0.3776632
# 6     2 1 0.4183373
# ...

ggplot(tmp_d, aes(x,y)) +
    geom_point() +
    facet_wrap(~ group, ncol = 1)
Run Code Online (Sandbox Code Playgroud)

我在Rstudio的绘图窗口弄得一团糟,我无法放大或滚动:

在此输入图像描述

不方便的解决方案涉及ggsaveknitr:

使用ggsave:

ggsave('tmp_20170104_long_ggplot.png', p, height = 100, limitsize = F)
Run Code Online (Sandbox Code Playgroud)

使用knitr:

将绘图嵌入knitr具有大任意值的代码块中fig.height:

---
title: "Test plot of tall ggplot2"

output:
    html_document
---

```{r, fig.height = 100}
library(ggplot2)
set.seed(111)
tmp_d <- data.frame(group = rep(1:100, each = 5), 
                    x = rep(1:5, times = 100),
                    y = runif(1:500))

ggplot(tmp_d, aes(x,y)) +
    geom_point() +
    facet_wrap(~ group, ncol = 1)
```
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. 如何轻松显示这些图?
  2. 如何确定每种解决方案的高度值?

bap*_*ste 5

1-尝试dev.new(width=3, height=10, noRStudioGD = TRUE).如果您的情节对于屏幕来说太高,您可以在pdf文件上绘制它并使用pdf查看器滚动,

library(ggplot2)
set.seed(111)
tmp_d <- data.frame(group = rep(1:100, each = 5), 
                    x = rep(1:5, times = 100),
                    y = runif(1:500))

p <- ggplot(tmp_d, aes(x,y)) +
  geom_point() +
  facet_wrap(~ group, ncol = 1)

nc <- length(unique(ggplot_build(p)[["data"]][[1]][["PANEL"]]))

ggsave("tall.pdf", p, width=7, height = nc * 7 + 2, limitsize = FALSE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

2-如果你有N排面板,每个面板应该是H英寸高,像N x H加上一些轴等空间应该很好.