【发布时间】:2021-05-15 08:13:03
【问题描述】:
我正在用 R markdown 编写一份报告。 我知道有一种方法可以让不同的情节并排,也有一种方法可以让不同的图像并排。
但是否也可以并排显示情节和图像?
我有一个 ggplot 条形图,我想在地图图像旁边显示它,如果我将图像放在图表下方会占用太多空间。
谢谢, 问候, 芙蕾雅
【问题讨论】:
标签: r-markdown
我正在用 R markdown 编写一份报告。 我知道有一种方法可以让不同的情节并排,也有一种方法可以让不同的图像并排。
但是否也可以并排显示情节和图像?
我有一个 ggplot 条形图,我想在地图图像旁边显示它,如果我将图像放在图表下方会占用太多空间。
谢谢, 问候, 芙蕾雅
【问题讨论】:
标签: r-markdown
这可能对你有用。这是一步一步的,括号之间是代码的指示。
首先,您需要通过创建对象 (photo) 来加载图像 (y)。
其次,使用图像 (photo_panel) 创建一个 ggplot。
最后,在创建绘图 (p1) 后,您使用库 cowplot 绘制网格 (plot_grid)。
.Rmd 文件:
---
title: "Image + graph"
author: bttomio
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
## R Markdown
```{r image_graph}
y = "http://upload.wikimedia.org/wikipedia/commons/5/5d/AaronEckhart10TIFF.jpg"
download.file(y,'y.jpg', mode = 'wb')
library("jpeg")
photo <- readJPEG("y.jpg",native=TRUE)
library(ggplot2)
library(cowplot)
photo_panel <- ggdraw() + draw_image(photo, scale = 0.8)
df <- data.frame(Years=rep(2016:2017, each=4),
Quarters=rep(paste0("Q", 1:4), 2),
Series1=seq(100, 800, 100))
library(ggplot2)
p1 <- ggplot(df) +
geom_point(aes(x=Quarters, y=Series1)) +
facet_wrap( ~ Years, strip.position="bottom", scales="free_x") +
theme(panel.spacing=unit(0, "lines"),
strip.background=element_blank(),
strip.placement="outside",
aspect.ratio=1) # set aspect ratio
plot_grid(p1, photo_panel, ncol = 2)
```
输出:
【讨论】: