Размер и разрешение участка с отметкой R, knitr, pandoc, beamer
Не помещается на слайд по умолчанию, даже не печатает другими средствами.
Здесь .Rmd: Изменить: кажется, вам нужно использовать plot() в каждом фрагменте. Теперь печатается второй график.
# Plot should show at high resolution
```{r echo=FALSE, comment = ""}
# load some data
require(plyr)
rbi <- ddply(baseball, .(year), summarise,
mean_rbi = mean(rbi, na.rm = TRUE))
```
```{r}
# plot
plot(mean_rbi ~ year, type = "l", data = rbi)
```
# Second attempt
```{r, fig.width = 2, fig.height = 2}
plot(mean_rbi ~ year, type = "l", data = rbi)
```
# Third attempt
```{r, out.width = 2, out.height = 2}
plot(mean_rbi ~ year, type = "l", data = rbi)
```
# Fourth attempt
```{r, out.width = '200px', out.height = '200px'}
plot(mean_rbi ~ year, type = "l", data = rbi)
```
# Fifth attempt
```{r, out.width = '\\maxwidth'}
plot(mean_rbi ~ year, type = "l", data = rbi)
```
Сохраните это как test.Rmd
Затем скомпилируйте tex с помощью луча:
knit("test.Rmd")
system("pandoc -s -t beamer --slide-level 1 test.md -o test.tex")
Откройте test.tex
в RStudio и нажмите "Скомпилировать PDF".
Я прочитал документацию Yihui и надеюсь, что я не пропустил что-то действительно очевидное.
Изменить новый код, включающий предложения Yihui.
```{r setup, include=FALSE}
opts_chunk$set(dev = 'pdf')
```
# Plot should show at high resolution
```{r echo=FALSE, comment = ""}
# load some data
require(plyr)
rbi <- ddply(baseball, .(year), summarise,
mean_rbi = mean(rbi, na.rm = TRUE))
```
```{r}
# plot
plot(mean_rbi ~ year, type = "l", data = rbi)
```
# Second attempt
```{r, fig.width = 4, fig.height = 4}
plot(mean_rbi ~ year, type = "l", data = rbi)
```
sessionInfo()
R version 3.0.1 (16/05/2013)
Platform: x86_64-pc-linux-gnu (64-bit)
Local:
[1] LC_CTYPE = en_US.UTF-8 LC_NUMERIC = C LC_TIME = C LC_COLLATE = C
[5] LC_MONETARY=C LC_MESSAGES=C LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=C LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] plyr_1.8 markdown_0.6 knitr_1.2 rCharts_0.3.51 slidify_0.3.52
loaded via a namespace (and not attached):
[1] RJSONIO_1.0-3 codetools_0.2-8 digest_0.6.3 evaluate_0.4.3 formatR_0.8
[6] grid_3.0.1 lattice_0.20-15 stringr_0.6.2 tools_3.0.1 whisker_0.3-2
[11] yaml_2.1.7
Ответы
Ответ 1
Я думаю, что это часто задаваемый вопрос о поведении фигур в слайдерах слайдов, созданных Pandoc и уценке. Реальная проблема заключается в том, что R Markdown создает изображения PNG по умолчанию (от knitr
), и по умолчанию трудно получить размер изображений PNG в LaTeX (я не знаю почему). Однако довольно легко получить размер PDF-изображений. Одним из решений является reset графическое устройство по умолчанию для PDF в вашем первом фрагменте:
```{r setup, include=FALSE}
opts_chunk$set(dev = 'pdf')
```
Затем все изображения будут записаны в виде файлов PDF, и LaTeX будет счастлив.
Вторая проблема заключается в том, что вы смешиваете единицы HTML с единицами LaTeX в out.width
/out.height
. LaTeX и HTML - это очень разные технологии. Вы не должны ожидать, что \maxwidth
будет работать в HTML или 200px
в LaTeX. Особенно, если вы хотите преобразовать Markdown в LaTeX, вам лучше не устанавливать out.width
/out.height
(используйте fig.width
/fig.height
и пусть LaTeX использует оригинальный размер).
Ответ 2
Размеры рисунков указаны в дюймах и могут быть включены как глобальная опция формата вывода документа. Например:
---
title: "My Document"
output:
html_document:
fig_width: 6
fig_height: 4
---
И размер графика в графическом устройстве может быть увеличен на уровне фрагмента:
```{r, fig.width=14, fig.height=12} #Expand the plot width to 14 inches
ggplot(aes(x=mycolumn1, y=mycolumn2)) + #specify the x and y aesthetic
geom_line(size=2) + #makes the line thicker
theme_grey(base_size = 25) #increases the size of the font
```
Вы также можете использовать аргументы out.width
и out.height
для прямого определения размера графика в выходном файле:
```{r, out.width="200px", out.height="200px"} #Expand the plot width to 200 pixels
ggplot(aes(x=mycolumn1, y=mycolumn2)) + #specify the x and y aesthetic
geom_line(size=2) + #makes the line thicker
theme_grey(base_size = 25) #increases the size of the font
```