Ich versuche, mit knitr nebeneinander Bilder mit einer Beschriftung einzufügen:
---
title: "XY"
author: "Doogan"
date: '`r format(Sys.Date(), "%B %d, %Y")`'
graphics: yes
output:
pdf_document:
toc: no
fig_caption: true
fontsize: 11pt
geometry: margin=1cm
---
```{r Directory, echo=F, message=F, warning=FALSE, paged.print=TRUE}
image.dir <- "your/directory/"
knitr::opts_chunk$set(echo = FALSE)
```
```{r 'xy_images'
,fig.show='hold',fig.pos='H',out.height='7.5cm',out.width='10cm',fig.cap="X
image (A) and Y image (B)"}
knitr::include_graphics(file.path(image.dir, 'X.png'))
knitr::include_graphics(file.path(image.dir, 'Y.png'))
```
Der obige Code erzeugt zwei gestapelte Bilder mit zwei separaten (identischen) Beschriftungen:
Wenn der Aufruf „fig.cap“ entfernt wird, werden die Abbildungen korrekt ausgerichtet, jedoch ohne Beschriftung.
Wie kann ich meinen Codeblock so ändern, dass die Bilder nebeneinander ausgerichtet sind und nur eine einzige Beschriftung angezeigt wird?
Antwort1
Ich habe eine Lösung für dieses Problem gefunden, indem ich die PNG-Bilder als Raster im selben Plotfenster plottete:
```{r 'xy_images', fig.width = 8,fig.height = 4.5,
fig.show='hold',fig.pos='H'fig.cap="X image (A) and Y image (B)"}
library(png);library(raster)
X <-readPNG("X.png")
Y <-readPNG("Y.png")
#set up figure
par(mar=c(0,0,0,0), xpd=NA, mgp=c(0,0,0),
oma=c(0,0,0,0), ann=F, mfrow = c(1,2))
plot.new()
usr<-par("usr")
#fill plot with images
rasterImage(X, usr[1], usr[3], usr[2], usr[4])
rasterImage(Y, usr[1]+1.1, usr[3], usr[2]+1.1, usr[4])
```