如何在 knitr 中以横向 [旋转 90 度] 方向生成绘图?

use*_*917 3 r knitr

下面的 knitr 代码给了我下面的图——我如何以横向方式绘制它?

```{r}
rm(list=ls())
library(tree)
set.seed(1111)
x1<-runif(100)
x2<-rnorm(100,mean=.3)
x3<-runif(100)
d1<-x1>0.5
d2<-x2>0.7
d3<-x3<0.2
y<-ifelse(d1,1,ifelse(d2,2,ifelse(d3,3,4)))
df<-data.frame(x1,x2,x3,y)
tr<-tree(y~.,data=df)
plot(tr)
text(tr)
```
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Gil*_*les 5

如果您想要 pdf/LaTeX 输出,使用out.extra='angle=90'chunk 参数很容易:

---
title: "Rotation test"
output: pdf_document
---

```{r, out.extra='angle=90'}
rm(list=ls())
library(tree)
set.seed(1111)
x1<-runif(100)
x2<-rnorm(100,mean=.3)
x3<-runif(100)
d1<-x1>0.5
d2<-x2>0.7
d3<-x3<0.2
y<-ifelse(d1,1,ifelse(d2,2,ifelse(d3,3,4)))
df<-data.frame(x1,x2,x3,y)
tr<-tree(y~.,data=df)
plot(tr)
text(tr)
```
Run Code Online (Sandbox Code Playgroud)

在某些情况下,最好保持图形不变,但在文档中仅以横向格式旋转一页。您需要pdflscape为此使用 LaTeX 包(例如包含在 Ubuntu 中的 texlive-latex-base 包中作为“oberdiek”)。

在以下示例中,图形被扩展为以横向格式占据完整的 A4 页面。注意:您必须指定fig.align='center'才能使其工作。

---
title: "Rotation test"
output: pdf_document
header-includes:
      - \usepackage{pdflscape}
---

```{r}
rm(list=ls())
library(tree)
set.seed(1111)
x1<-runif(100)
x2<-rnorm(100,mean=.3)
x3<-runif(100)
d1<-x1>0.5
d2<-x2>0.7
d3<-x3<0.2
y<-ifelse(d1,1,ifelse(d2,2,ifelse(d3,3,4)))
df<-data.frame(x1,x2,x3,y)
tr<-tree(y~.,data=df)
```

\newpage

\begin{landscape}

```{r fig.align='center', fig.width = 27/2.54, fig.height = 19/2.54}
plot(tr)
text(tr)
```
\end{landscape}

```{r}
summary(tr)
```
Run Code Online (Sandbox Code Playgroud)