Die Frage ist alt, erhält aber immer noch viel Aufmerksamkeit. Da die vorhandenen Antworten veraltet sind, finden Sie hier eine aktuellere Lösung:
Ändern der Größe lokaler Bilder
Ab knitr
1.12 gibt es die Funktion include_graphics
. Von ?include_graphics
(Hervorhebung von mir):
Der Hauptvorteil dieser Funktion besteht darin, dass sie in dem Sinne portabel ist, dass sie für alle unterstützten Dokumentformate funktioniert. knitr
Sie müssen also nicht überlegen, ob Sie beispielsweise LaTeX- oder Markdown-Syntax verwenden müssen, um eine externe Funktion einzubetten Bild. Chunk-Optionen für die Grafikausgabe, die für normale R-Diagramme funktionieren, funktionieren auch für diese Bilder, z. B. out.width
und out.height
.
Beispiel:
```{r, out.width = "400px"}
knitr::include_graphics("path/to/image.png")
```
Vorteile:
- Über die Antwort von agastudy : Keine Notwendigkeit für externe Bibliotheken oder für ein erneutes Rastering des Bildes.
- Über Shruti Kapoors Antwort : Keine Notwendigkeit, HTML manuell zu schreiben. Außerdem ist das Bild in der eigenständigen Version der Datei enthalten.
Einschließlich generierter Bilder
Um den Pfad zu einem Plot zu erstellen, der in einem Block generiert wird (aber nicht enthalten ist), können die Blockoptionen opts_current$get("fig.path")
(Pfad zum Figurenverzeichnis) sowie opts_current$get("label")
(Bezeichnung des aktuellen Blocks) hilfreich sein. Im folgenden Beispiel wird fig.path
das zweite von zwei Bildern, die generiert (aber nicht angezeigt) wurden, in den ersten Block aufgenommen:
```{r generate_figures, fig.show = "hide"}
library(knitr)
plot(1:10, col = "green")
plot(1:10, col = "red")
```
```{r}
include_graphics(sprintf("%sgenerate_figures-2.png", opts_current$get("fig.path")))
```
Das allgemeine Muster der Figurenpfade lautet [fig.path]/[chunklabel]-[i].[ext]
: Wo chunklabel
ist die Bezeichnung des Blocks, in dem der Plot generiert wurde ? Ist der Plotindex i
(innerhalb dieses Blocks) und ext
die Dateierweiterung (standardmäßig png
in RMarkdown-Dokumenten).