Pytanie jest stare, ale wciąż poświęca się mu wiele uwagi. Ponieważ istniejące odpowiedzi są nieaktualne, tutaj bardziej aktualne rozwiązanie:
Zmiana rozmiaru obrazów lokalnych
Od knitr
1.12 dostępna jest funkcja include_graphics
. Od ?include_graphics
(wyróżnienie moje):
Główną zaletą korzystania z tej funkcji jest to, że jest przenośna w tym sensie, że działa dla wszystkich obsługiwanych formatów dokumentów knitr
, więc nie musisz zastanawiać się, czy musisz używać na przykład składni LaTeX lub Markdown, aby osadzić zewnętrzny wizerunek. Opcje fragmentów związane z wyjściem graficznym, które działają dla normalnych wykresów R, działają również dla tych obrazów, takich jak out.width
i out.height
.
Przykład:
```{r, out.width = "400px"}
knitr::include_graphics("path/to/image.png")
```
Zalety:
- Nad odpowiedzią agastudy za : Nie ma potrzeby stosowania zewnętrznych bibliotek lub do ponownego rastrowy obraz.
- Odpowiedź Shruti Kapoor : Nie ma potrzeby ręcznego pisania w HTML. Poza tym obraz jest zawarty w samodzielnej wersji pliku.
W tym wygenerowane obrazy
Aby skomponować ścieżkę do wykresu, który jest generowany w porcji (ale nie jest uwzględniony), przydatne mogą być opcje porcji opts_current$get("fig.path")
(ścieżka do katalogu figury), a także opts_current$get("label")
(etykieta bieżącej porcji). W poniższym przykładzie fig.path
uwzględniono drugi z dwóch obrazów, które zostały wygenerowane (ale nie zostały wyświetlone) w pierwszej porcji:
```{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")))
```
Ogólny wzorzec ścieżek do rysunków to [fig.path]/[chunklabel]-[i].[ext]
, gdzie chunklabel
jest etykietą fragmentu, w którym wygenerowano i
wykres , jest indeksem wykresu (w tym fragmencie) i ext
jest rozszerzeniem pliku (domyślnie png
w dokumentach RMarkdown).