相关疑难解决方法(0)

在ggplot中对齐绘图区域

我正在尝试使用grid.arrange在ggplot生成的同一页面上显示多个图形.这些图使用相同的x数据但具有不同的y变量.由于y数据具有不同的比例,因此图表具有不同的尺寸.

我尝试在ggplot2中使用各种主题选项来更改绘图大小并移动y轴标签,但没有一个能够对齐绘图.我想将这些图排列成2 x 2的正方形,这样每个图都是相同的大小,x轴对齐.

这是一些测试数据:

A <- c(1,5,6,7,9)
B <- c(10,56,64,86,98)
C <- c(2001,3333,5678,4345,5345)
D <- c(13446,20336,24333,34345,42345)
L <- c(20,34,45,55,67)
M <- data.frame(L, A, B, C, D)
Run Code Online (Sandbox Code Playgroud)

我用来绘制的代码:

x1 <- ggplot(M, aes(L, A,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
x2 <- ggplot(M, aes(L, B,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
x3 <- ggplot(M, aes(L, C,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
x4 <- ggplot(M, aes(L, D,xmin=10,ymin=0)) + geom_point() + stat_smooth(method='lm')
grid.arrange(x1,x2,x3,x4,nrow=2)
Run Code Online (Sandbox Code Playgroud)

如果运行此代码,您将看到由于y轴单位的长度较大,底部两个图的绘图区域较小.

如何使实际绘图窗口相同?

r ggplot2

21
推荐指数
3
解决办法
8641
查看次数

用 knitr 垂直堆叠的子图

我试图在 Latex 文档中使用 knitr 将两个子图垂直堆叠而不是并排放置。在 Latex 中,我通常通过在需要彼此堆叠的两个子浮点之间放置一个 '\par' 命令来做到这一点,但我不知道如何将该命令传递给 knitr。

我只能找到一个关于此的主题,使用 knitr 的子图或子标题?. Yihui 给出的例子将数字并排。该线程中的最终答案实现了我的目标,但是使用了相当多的黑客技术,所以我想知道是否有一种简单的方法可以将此命令直接传递给 knitr?

MWE:

\documentclass[a4paper]{article} 

\usepackage[font=footnotesize]{subfig}

\begin{document} 

<<GeneratePlot>>=
library(ggplot2)
library(tikzDevice)
P1 <- ggplot(data=mpg, aes(x=displ, y=hwy, colour=factor(cyl)))+
    geom_line()
P2 <-  ggplot(data=mpg, aes(x=displ, y=hwy, colour=factor(cyl)))+
    geom_point()
@


<<fig1,eval=TRUE,echo=FALSE,dev='tikz', fig.width=6, fig.height=3, out.width='1\\textwidth', fig.cap='Two figures', fig.subcap=c('Top','Bottom'), fig.show='asis', fig.pos='!htpb', fig.align='center', dependson='GeneratePlot'>>= 
P1
P2
@ 

\end{document}
Run Code Online (Sandbox Code Playgroud)

我还尝试在与输出相同的块中创建绘图对象,但这会产生相同的结果,并且在我的原始文档中,绘图对象是作为更大块的一部分生成的,因此它将具有与 MWE 相同的结构.

latex r subfigure knitr

5
推荐指数
1
解决办法
1402
查看次数

R Markdown - 并排定位表格和绘图

我正在使用 R Markdown 输出到 pdf,并且我试图获得一个表格和一个水平并排对齐的图。我可以将fig.align = "right"绘图与页面右侧对齐,但它绘制在表格下方(格式为kable),而不是与它并排。有小费吗?

r-markdown

5
推荐指数
1
解决办法
1万
查看次数

Rmarkdown:同一页面上的多个图表,带有单独的标题

我正在使用pdf输出在R markdown中编写报告.我有几个图,我想在2x2矩阵中显示每页四个图.有没有办法让它们像单独的字幕那样显示?

这是我到目前为止所尝试的:

  • 包gridExtra - 我可以轻松设置我想要的布局,但我无法在图中添加标题.是否可以选择在图中添加标题grid.arrange

  • 将每个绘图放在不同的块中并使用R块选项进行播放.基本上设置out.width='.49\\linewidth', fig.align='right'fig.align='left'替代.在这里,我可以设置单独的标题,fig.cap但这些图总是显示在不同的页面上.

  • 我尝试使用fig.widthfig.height选项一起玩,并能够让它们显示在页面各自左侧或右侧的同一页面上.但是,标题始终采用整页宽度并保持在中心而不是用绘图大小包装.有没有办法按照情节大小规则制作标题?

这是一个示例代码:

```{r, echo=FALSE, cache=FALSE, results=FALSE, warning=FALSE,  comment=FALSE, message= FALSE, eval =T, fig.height= 9}

p1<- ggplot(mpg, aes(displ, hwy, colour = class)) + 
geom_point()+
labs(caption = "Lorem ipsum dolor sit amet, consectetur adipiscing     elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo …
Run Code Online (Sandbox Code Playgroud)

r-markdown gridextra

2
推荐指数
1
解决办法
2053
查看次数

在 R markdown 中包含并排图的图形标签

在我的 rmarkdown 文档中,我想并排包含绘图以节省空间。例如,我想包括:

plot(rnorm(100))
hist(runif(100))
Run Code Online (Sandbox Code Playgroud)

或者

plot(rnorm(100))
hist(runif(100))
Run Code Online (Sandbox Code Playgroud)

我真的不在乎两个子图是否有一个标题或每个子图都有一个标题。我只是想并排包含图形并有一些方法来引用它们(图 1 等)。有人有建议吗?我的标题中有这个:

标头包含: - \usepackage{subfig}

当我的块中没有“fig.show='hold'”时,我的所有标题都工作正常,但我的图不会并排显示。当我添加 Fig.show='hold' 时,布局看起来很棒,但标题消失了。

latex r subfigure r-markdown

1
推荐指数
1
解决办法
2835
查看次数

标签 统计

r ×3

r-markdown ×3

latex ×2

subfigure ×2

ggplot2 ×1

gridextra ×1

knitr ×1