Chèn ảnh / bảng vào R Markdown


132

Vì vậy, tôi muốn chèn một bảng VÀ một hình ảnh vào R Markdown. Trong tài liệu từ thông thường, tôi có thể dễ dàng chèn một bảng (5 hàng bằng 2 cột) và đối với ảnh chỉ cần sao chép và dán.

  1. Làm cách nào để tôi chèn một bảng 5 hàng bằng 2 cột (và cũng nhập nội dung vào chúng) (và cũng điều chỉnh bảng theo cột thứ 2 rộng hơn cột thứ nhất)?

  2. Làm thế nào để tôi chèn một hình ảnh? Từ sự hiểu biết của tôi, trước tiên tôi nên lưu hình ảnh dưới dạng png, sau đó tham chiếu nó vào tài liệu của tôi. Ngoài ra, tôi muốn tự động điều chỉnh hình ảnh theo báo cáo, như không chiếm nhiều hơn một trang hoặc ít hơn một trang. (Có cách nào để tôi điều chỉnh kích thước của hình ảnh theo ý thích của mình không)?

  3. Nếu bất cứ ai biết bất cứ điều gì hay / định dạng về R Markdown, bạn cũng có thể cho tôi biết không? Tôi biết rằng #làm cho một tiêu đề lớn cho một đoạn văn, và in ** **đậm những điều. Đó là tất cả những gì tôi biết mặc dù!


Tôi tìm ra cách thêm bảng! Vẫn băn khoăn về hình ảnh ._.
dùng3784616

Câu trả lời:


152

Một số trang web cung cấp bảng cheat hợp lý hoặc HOWTO cho bảng và hình ảnh. Đứng đầu trong danh sách của tôi là:

Hình ảnh rất đơn giản để sử dụng nhưng không cung cấp khả năng điều chỉnh hình ảnh cho phù hợp với trang (xem Cập nhật , bên dưới). Để điều chỉnh các thuộc tính hình ảnh (kích thước, độ phân giải, màu sắc, đường viền, v.v.), bạn sẽ cần một số hình thức chỉnh sửa hình ảnh. Tôi thấy tôi có thể làm mọi thứ tôi cần với một trong ImageMagick , GIMP hoặc InkScape , tất cả nguồn mở và miễn phí.

Để thêm một hình ảnh, sử dụng:

![Caption for the picture.](/path/to/image.png)

Tôi biết pandoc hỗ trợ PNG và JPG, đáp ứng hầu hết các nhu cầu của bạn.

Bạn có quyền kiểm soát kích thước hình ảnh nếu bạn đang tạo nó trong R (ví dụ: cốt truyện). Điều này có thể được thực hiện trực tiếp trong lệnh để tạo hình ảnh hoặc, thậm chí tốt hơn, thông qua các tùy chọn nếu bạn đang sử dụng đan (rất khuyến khích ... kiểm tra các tùy chọn chunk , đặc biệt là trong Plots).

Tôi thực sự khuyên bạn nên xem qua các hướng dẫn này; markdown rất tiện dụng và có nhiều tính năng mà hầu hết mọi người không sử dụng một cách thường xuyên nhưng thực sự thích một khi họ học nó. (SO không nhất thiết là nơi tốt nhất để đặt câu hỏi được trả lời trực tiếp trong các hướng dẫn này.)


Cập nhật, 2019-Aug-31

Cách đây một thời gian, đã pandockết hợp "link_attribut" cho hình ảnh (rõ ràng là vào năm 2015, với cam kết jgm / pandoc # 244cd56 ). "Thay đổi kích thước hình ảnh" có thể được thực hiện trực tiếp. Ví dụ:

![unchanged image](foo.jpg)
![much-smaller image](foo.jpg){#id .class width=30 height=20px}
![half-size image](foo.jpg){#id .class width=50% height=50%}

Các kích thước có thể được cung cấp không có đơn vị (pixel giả định), hoặc với " , , , và "pxcmmmininch% (ref: https://pandoc.org/MANUAL.html , tìm kiếm link_attributes).

(Tôi không chắc chắn rằng CommonMark đã thực hiện điều này, mặc dù đã có một cuộc thảo luận dài .)


Nếu bạn vẫn đang đọc này, về hình ảnh. Tôi có thể mở lại tệp Rmarkdown trên một máy tính khác mà không có hình ảnh không? Là hình ảnh vĩnh viễn khi tôi thêm nó vào R? Nếu không làm thế nào để tôi làm cho nó vĩnh viễn
user3784616

3
Các tập tin không phải là vĩnh viễn trong .Rmdtập tin. Nếu bạn "biên dịch" nó (sử dụng pandoc) sang HTML, việc thêm --self-containedsẽ mã hóa hình ảnh vào tệp html. Các tệp PDF và Word sẽ có nó như một phần của tệp, vì vậy bạn sẽ không cần bao gồm tệp PNG thực tế khi bạn gửi nó đi. Tuy nhiên, các tệp Rmd ​​yêu cầu bạn đưa tệp hình ảnh theo cách thủ công.
r2evans

làm thế nào nó hoạt động..? Tôi thậm chí dường như không thể thêm hình ảnh .. Vì vậy, về cơ bản, hình ảnh được đặt tên là "Tỷ lệ việc làm" và nó nằm trong một thư mục tệp có tên là "Tóm tắt". Vị trí của tệp là C: \ Users \ Paul \ Desktop \ Summary. Vì vậy, mã tôi đã viết là! [Tỷ lệ việc làm.] (C: /Users/Paul/Desktop.Summary.png) và nó không hoạt động
user3784616

bạn có thể cho tôi một ví dụ về cách sử dụng - tự chứa? Vì vậy, khi tôi lưu nó dưới dạng một tài liệu từ, nó sẽ có hình ảnh vĩnh viễn? Tôi vẫn còn một chút bối rối
dùng3784616

Tốt hơn nữa, sử dụng nó trong tiêu đề YAML của Rmd thì đơn giản hơn (và rõ ràng là mặc định). Đây là tài liệu tham khảo: rmarkdown tại rstudio . Hơn 1/3 đường xuống là một phần về "Phụ thuộc tài liệu" giải quyết việc sử dụng nó.
r2evans

87

Cập nhật : vì câu trả lời từ @ r2evans, việc chèn hình ảnh vào R Markdown sẽ dễ dàng hơn nhiều và kiểm soát kích thước của hình ảnh.

Hình ảnh

Các cuốn sách bookdown làm một công việc tuyệt vời của giải thích rằng cách tốt nhất để đưa hình ảnh là bằng cách sử dụng include_graphics(). Ví dụ: hình ảnh có chiều rộng đầy đủ có thể được in với chú thích bên dưới:

```{r pressure, echo=FALSE, fig.cap="A caption", out.width = '100%'}
knitr::include_graphics("temp.png")
```

Lý do phương pháp này tốt hơn phương pháp pandoc ![your image](path/to/image):

  • Nó tự động thay đổi lệnh dựa trên định dạng đầu ra (HTML / PDF / Word)
  • Cú pháp tương tự có thể được sử dụng cho kích thước của âm mưu ( fig.width), độ rộng đầu ra trong báo cáo ( out.width), thêm chú thích ( fig.cap), v.v.
  • Nó sử dụng các thiết bị đồ họa tốt nhất cho đầu ra. Điều này có nghĩa là hình ảnh PDF vẫn có độ phân giải cao.

Những cái bàn

knitr::kable()là cách tốt nhất để đưa các bảng vào báo cáo R Markdown như được giải thích đầy đủ ở đây . Một lần nữa, chức năng này là thông minh trong việc tự động chọn định dạng chính xác cho đầu ra được chọn.

```{r table}
knitr::kable(mtcars[1:5,, 1:5], caption = "A table caption")
```

Nếu bạn muốn tạo các bảng đơn giản của riêng mình trong R Markdown và đang sử dụng R Studio, bạn có thể kiểm tra insert_table gói . Nó cung cấp một giao diện đồ họa gọn gàng để làm bảng.

Đạt được kiểu dáng tùy chỉnh của chiều rộng cột bảng nằm ngoài phạm vi knitr, nhưng kableExtragói đã được viết để giúp đạt được điều này: https://cran.r-project.org/web/packages/kableExtra/index.html

Mẹo phong cách

Bảng cheat R Markdown vẫn là nơi tốt nhất để tìm hiểu về hầu hết các cú pháp cơ bản bạn có thể sử dụng.

Nếu bạn đang tìm kiếm các phần mở rộng tiềm năng cho định dạng, bookdowngói cũng đáng để khám phá. Nó cung cấp khả năng tham chiếu chéo, tạo các tiêu đề đặc biệt và hơn thế nữa: https://bookdown.org/yihui/bookdown/markdown-extensions-by-bookdown.html


Giải pháp tuyệt vời!
Marcus Nunes

Bạn có biết làm thế nào để khóa vị trí hình ảnh tại chỗ? Ngay bây giờ thật khó để dự đoán nơi nó sẽ xuất hiện khi tôi biên dịch nó.
wolfsatthedoor

1
Tôi đã vật lộn với việc ![image caption](\path\to\image.png)cố gắng chèn một hình ảnh trong R Markdown kết xuất .docx, nhưng thất bại một cách bí ẩn, cho đến khi tôi thấy knitr::include_graphics()giải pháp của bạn ngày hôm nay. Cảm ơn bạn rất nhiều!
khai thác

5

Khi nói đến việc chèn một hình ảnh, đề xuất của r2evans ![Caption for the picture.](/path/to/image.png)có thể có vấn đề nếu đầu ra PDF là bắt buộc.

Chức năng knitr include_graphics knitr::include_graphics('/path/to/image.png') là một thay thế khả năng di chuyển mà sẽ tạo ra, thay mặt bạn, markdown đó là thích hợp nhất để định dạng đầu ra rằng bạn đang tạo.


Tò mò ... tại sao việc sử dụng ![caption](path/to/image.png)có vấn đề nếu đầu ra PDF là bắt buộc? Có lẽ câu trả lời này đã lỗi thời (như câu trả lời ban đầu của tôi), nhưng tôi đã sử dụng câu hỏi này trong đầu ra PDF ít nhất một vài năm.
r2evans

4

Vào tháng 3, tôi đã thực hiện một bài thuyết trình trên boong trong slidify, Rmarkdown với ấn tượng.js là một khung 3D tuyệt vời. index.Rmdtiêu đề của tôi trông giống như

---
title       : French TER (regional train) monthly regularity
subtitle    : since January 2013
author      : brigasnuncamais
job         : Business Intelligence / Data Scientist consultant
framework   : impressjs     # {io2012, html5slides, shower, dzslides, ...}
highlighter : highlight.js  # {highlight.js, prettify, highlight}
hitheme     : tomorrow      # 
widgets     : []            # {mathjax, quiz, bootstrap}
mode        : selfcontained # {standalone, draft}
knit        : slidify::knit2slides

các thư mục con là:

/assets /css    /impress-demo.css
        /fig    /unnamed-chunk-1-1.png (generated by included R code)
        /img    /SS850452.png (my image used as background)
        /js     /impress.js
        /layouts/custbg.html # content:--- layout: slide --- {{{ slide.html }}}
        /libraries  /frameworks /impressjs
                                /io2012
                    /highlighters   /highlight.js
                                    /impress.js
index.Rmd

một slide với hình ảnh trong đoạn mã nền sẽ có trong .Rmd của tôi:

<div id="bg">
  <img src="assets/img/SS850452.png" alt="">
</div>  

Một số vấn đề xuất hiện kể từ lần cuối tôi làm việc với nó (ảnh không còn ở chế độ nền, văn bản quá lớn trên ô R của tôi) nhưng nó hoạt động tốt trên địa phương của tôi. Rắc rối đến khi tôi chạy nó trên RPub.


2
Nếu bạn có một câu hỏi mới, vui lòng hỏi nó bằng cách nhấp vào nút Hỏi câu hỏi . Bao gồm một liên kết đến câu hỏi này nếu nó giúp cung cấp bối cảnh.
Jaap

8
đây không phải là một câu hỏi, đây là một câu trả lời :-)
brigasnuncamais

2
Liên kết đầu tiên bị hỏng.
daknowles
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.