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

时间:2017-04-17 06:55:28

标签: r 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)
```

enter image description here

1 个答案:

答案 0 :(得分:3)

如果你想要一个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)
```

在某些情况下,最好保留图形,但在文档中仅以横向格式旋转一页。 你需要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)
```