ผมมีภาพในท้องถิ่นที่ฉันต้องการที่จะรวมอยู่ใน.Rmdไฟล์ที่ผมจะแล้วknitและแปลงเป็น HTML Pandocสไลด์ด้วย ต่อโพสต์นี้จะแทรกภาพในพื้นที่:

มีวิธีการแก้ไขรหัสนี้เพื่อตั้งขนาดภาพหรือไม่
ผมมีภาพในท้องถิ่นที่ฉันต้องการที่จะรวมอยู่ใน.Rmdไฟล์ที่ผมจะแล้วknitและแปลงเป็น HTML Pandocสไลด์ด้วย ต่อโพสต์นี้จะแทรกภาพในพื้นที่:

มีวิธีการแก้ไขรหัสนี้เพื่อตั้งขนาดภาพหรือไม่
คำตอบ:
นอกจากนี้คุณยังสามารถอ่านภาพโดยใช้pngแพคเกจตัวอย่างและพล็อตมันเช่นพล็อตปกติใช้grid.rasterจากgridแพคเกจ
```{r fig.width=1, fig.height=10,echo=FALSE}
library(png)
library(grid)
img <- readPNG("path/to/your/image")
grid.raster(img)
```
ด้วยวิธีนี้คุณสามารถควบคุมขนาดภาพของคุณได้อย่างเต็มที่
img <- readPNG("path/to/your/image")เครื่องหมายคำพูดรอบไฟล์พา ธแต่ฉันไม่สามารถแก้ไขโซลูชันได้
path/to/your/imageจากคำถามของคุณ ใช่ชื่อพา ธ เป็นสตริงและคุณต้องมีเครื่องหมายคำพูดเพื่อกำหนดสตริง หวังว่าฉันชัดเจน
คำถามนั้นเก่า แต่ก็ยังได้รับความสนใจเป็นอย่างมาก เนื่องจากคำตอบที่มีอยู่ล้าสมัยนี่เป็นวิธีแก้ปัญหาที่ทันสมัยมากขึ้น:
ในฐานะของknitr1.12include_graphicsมีฟังก์ชั่น จาก?include_graphics(เน้นที่เหมือง):
ข้อได้เปรียบที่สำคัญของการใช้ฟังก์ชั่นนี้คือมันพกพาได้ในแง่ที่ว่ามันใช้งานได้กับทุกรูปแบบเอกสารที่
knitrรองรับดังนั้นคุณไม่จำเป็นต้องคิดว่าคุณต้องใช้ตัวอย่างเช่น LaTeX หรือ Markdown syntax เพื่อฝังภายนอก ภาพ. ตัวเลือกก้อนที่เกี่ยวข้องกับการส่งออกกราฟิกที่ทำงาน R แปลงปกติยังทำงานสำหรับภาพเหล่านี้เช่นและout.widthout.height
```{r, out.width = "400px"}
knitr::include_graphics("path/to/image.png")
```
ข้อดี:
ในการเขียนพา ธ ไปยังพล็อตที่สร้างขึ้นใน chunk (แต่ไม่รวม) ตัวเลือก chunk opts_current$get("fig.path")(พา ธ ไปยังไดเร็กตอรี่ไดเรกทอรี) รวมถึงopts_current$get("label")(เลเบลของ chunk ปัจจุบัน) อาจมีประโยชน์ ตัวอย่างต่อไปนี้ใช้fig.pathเพื่อรวมภาพที่สองของสองภาพที่สร้างขึ้น (แต่ไม่แสดง) ในอันแรก:
```{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")))
```
รูปแบบทั่วไปของเส้นทางรูปคือ[fig.path]/[chunklabel]-[i].[ext]โดยที่chunklabelฉลากของชิ้นส่วนที่มีการสร้างiพล็อตคือดัชนีพล็อต (ภายในอันนี้) และextเป็นนามสกุลไฟล์ (โดยค่าเริ่มต้นpngในเอกสาร RMarkdown)
out.width='100pt'มิฉะนั้นยางจะทำให้เกิดข้อผิดพลาดเกี่ยวกับหน่วยวัดที่ผิดกฎหมาย
r, echo=FALSE, ...
ยังไม่มีคำตอบที่อัปเดต: knitr 1.17คุณสามารถใช้
{width=250px}
แก้ไขตามความคิดเห็นจาก @jsb
หมายเหตุทำงานได้โดยไม่มีช่องว่างเช่น {width = 250px} ไม่ใช่ {width = 250px}
{width=250px} {width = 250px}
xaringan knitr_1.21
นี่คือตัวเลือกบางอย่างที่ทำให้ไฟล์มีอยู่ในตัวเองโดยไม่ต้องปรับแต่งภาพใหม่:
divแท็ก<div style="width:300px; height:200px">

</div>
---
title: test
output: html_document
css: test.css
---
## Page with an image {#myImagePage}

#myImagePage img {
width: 400px;
height: 200px;
}
หากคุณมีภาพมากกว่าหนึ่งภาพคุณอาจต้องใช้ตัวเลือกหลอกสำหรับเด็กตัวเลือกที่สองสำหรับตัวเลือกที่สองนี้
<div> ... </div>แก้ปัญหาดูเหมือนง่ายมาก การstyleตั้งค่าเพื่อปรับขนาดรูปภาพใหม่เป็นเปอร์เซ็นต์คงที่คือการรักษาอัตราส่วนกว้างยาว?
หากคุณกำลังแปลงเป็น HTML คุณสามารถกำหนดขนาดของภาพโดยใช้ไวยากรณ์ HTML โดยใช้:
<img src="path/to/image" height="400px" width="300px" />
หรือความสูงและความกว้างใด ๆ ที่คุณต้องการจะให้
มีปัญหาเดียวกันในวันนี้และพบตัวเลือกอื่นknitr 1.16เมื่อถักเป็น PDF (ซึ่งต้องการให้คุณติดตั้งแพนโดก):
{width=70%}
วิธีนี้อาจทำให้คุณต้องทดลองใช้และมีข้อผิดพลาดเล็กน้อยเพื่อค้นหาขนาดที่เหมาะกับคุณ มันสะดวกมากเป็นพิเศษเพราะมันทำให้การวางภาพสองภาพเคียงข้างกันเป็นกระบวนการที่สวยกว่า ตัวอย่างเช่น:
{width=70%}{width=30%}
คุณสามารถสร้างสรรค์และซ้อนสองสามด้านข้างนี้และปรับขนาดตามที่เห็นสมควร ดูhttps://rpubs.com/RatherBit/90926สำหรับแนวคิดและตัวอย่างเพิ่มเติม
ตัวเลือกอื่นที่ใช้งานได้สำหรับฉันคือเล่นกับตัวเลือก dpi knitr::include_graphics()เช่นนี้:
```{r}
knitr::include_graphics("path/to/image.png", dpi = 100)
```
... ซึ่งแน่นอน (เว้นแต่ว่าคุณจะทำคณิตศาสตร์) คือการทดลองและข้อผิดพลาดเมื่อเทียบกับการกำหนดขนาดในกลุ่ม แต่อาจจะช่วยใครสักคน
วิธีแก้ปัญหา knitr :: include_graphics ทำงานได้ดีสำหรับการปรับขนาดตัวเลข แต่ฉันไม่สามารถหาวิธีใช้เพื่อสร้างตัวเลขที่ปรับขนาดแบบเคียงข้างกัน ฉันพบว่าโพสต์นี้มีประโยชน์สำหรับการทำเช่นนั้น