R Markdown'a resim / tablo ekle


135

Bu yüzden R Markdown'a bir tablo VE bir resim eklemek istiyorum. Normal kelime belgesine kolayca bir tablo ekleyebilirim (2 sütuna 5 satır) ve resim için kopyalayıp yapıştırabilirim.

  1. 5 satıra 2 sütunlu bir tabloyu nasıl ekleyebilirim (ve bunlara bir şeyler de yazabilirim) (ve ayrıca tabloyu 2. sütunun ilkinden daha geniş olması açısından ayarlayabilirim)?

  2. Nasıl resim ekleyebilirim? Anladığım kadarıyla, önce resmi bir png olarak kaydetmeli, sonra onu belgemde referans göstermeliyim. Ayrıca, bir sayfadan fazla veya bir sayfadan daha az almamak gibi resmi otomatik olarak rapora göre ayarlamak istiyorum. (Resmin boyutunu beğenime göre ayarlamanın bir yolu var mı?

  3. R Markdown hakkında harika / biçimlendiren bir şey bilen varsa, bana da bildirebilir misin? Bunun #bir paragraf için büyük bir başlık olduğunu ve her ** **şeyi kalınlaştırdığını biliyorum . Gerçi tüm bildiğim bu kadar!


Nasıl tablo ekleneceğini öğrendim! Hala resimleri merak ediyorum ._.
user3784616

Yanıtlar:


154

Birkaç site, tablolar ve resimler için makul hile sayfaları veya NASIL'lar sağlar. Listemdeki en iyiler:

Resimlerin kullanımı çok basittir, ancak resmi sayfaya sığacak şekilde ayarlama yeteneği sunmaz (aşağıdaki Güncelleme bölümüne bakın). Görüntü özelliklerini (boyut, çözünürlük, renkler, kenarlık vb.) Ayarlamak için bir tür görüntü düzenleyiciye ihtiyacınız olacaktır. Tamamen ücretsiz ve açık kaynaklı olan ImageMagick , GIMP veya InkScape ile ihtiyacım olan her şeyi yapabileceğimi anlıyorum .

Bir resim eklemek için şunu kullanın:

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

Pandoc'un, ihtiyaçlarınızın çoğunu karşılaması gereken PNG ve JPG'yi desteklediğini biliyorum.

Eğer onu R'de oluşturuyorsanız, görüntü boyutu üzerinde kontrole sahip olursunuz (örneğin, bir çizim). Bu, görüntüyü oluşturmak için doğrudan komutta veya daha da iyisi, knitr kullanıyorsanız seçenekler aracılığıyla yapılabilir (şiddetle tavsiye edilir ... özellikle Grafikler altında yığın seçeneklerine göz atın ).

Bu eğitimleri incelemenizi şiddetle tavsiye ederim; markdown çok kullanışlıdır ve çoğu insanın düzenli olarak kullanmadığı, ancak öğrendiklerinde gerçekten sevdikleri birçok özelliğe sahiptir. (SO, bu eğitimlerde çok doğrudan yanıtlanan soruları sormak için en iyi yer olmayabilir.)


Güncelleme, 2019-Ağustos-31

Bir süre önce, pandocgörüntüler için "link_attributes" dahil edildi (görünüşe göre 2015'te, jgm / pandoc # 244cd56 commit ile ). "Görüntüleri yeniden boyutlandırma" doğrudan yapılabilir. Örneğin:

![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%}

Boyutları, bir birim ile temin edilebilir (piksel kabul), ya da " , , , ve "pxcmmmininch% (ref: https://pandoc.org/MANUAL.html için arama link_attributes).

( Uzun bir tartışma olmasına rağmen CommonMark'ın bunu uyguladığından emin değilim .)


Hala bunu okuyorsanız, resim hakkında. Rmarkdown dosyasını resim olmadan başka bir bilgisayarda tekrar açabilir miyim? R'ye ekledikten sonra resim kalıcı mı? Nasıl kalıcı
yapmam gerekirse

3
Dosya, dosya içinde kalıcı değildir .Rmd. Eğer onu (pandoc kullanarak) HTML'ye "derlerseniz", eklemek --self-containedgörüntüyü html dosyasına kodlayacaktır. PDF ve Word dosyalarında dosyanın bir parçası olacaktır, bu nedenle gönderirken gerçek PNG dosyasını eklemenize gerek kalmaz. Bununla birlikte, Rmd dosyaları, görüntü dosyasını manuel olarak eklemenizi gerektirir.
r2evans

o nasıl çalışır..? Resmi ekleyemiyorum bile .. Yani resmin adı "İstihdam Oranları" ve "Özet" adlı bir dosya klasöründe. Dosyanın konumu C: \ Users \ Paul \ Desktop \ Summary'dir. Yani yazdığım kod! [İstihdam Oranları.] (C: /Users/Paul/Desktop.Summary.png) ve çalışmıyor
user3784616

kendi kendine yeten şeyin nasıl kullanılacağına dair bir örnek verebilir misin? Yani onu bir word doc olarak kaydettiğimde, imaj kalıcı olacak mı? Hala biraz kafam karıştı
user3784616

Daha da iyisi, onu Rmd'nin YAML başlığında kullanmak daha basittir (ve görünüşe göre varsayılan). İşte referans: rstudio'da rmarkdown . Yolun 1 / 3'ünden fazlası, kullanımını ele alan "Belge Bağımlılıkları" ile ilgili bir bölümdür.
r2evans

88

Güncelleme : @ r2evans'ın cevabından bu yana, görüntüleri R Markdown'a eklemek ve görüntünün boyutunu kontrol etmek çok daha kolay.

Görüntüler

Bookdown kitap görüntüleri dahil etmek iyi yolu kullanarak olduğunu anlatan harika bir iş yok include_graphics(). Örneğin, tam genişlikte bir resim aşağıdaki başlık ile yazdırılabilir:

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

Bu yöntemin pandoc yaklaşımından daha iyi olmasının nedeni ![your image](path/to/image):

  • Çıktı formatına (HTML / PDF / Word) göre komutu otomatik olarak değiştirir
  • Aynı sözdizimi plotun boyutu ( fig.width), rapordaki çıktı genişliği ( out.width), başlıklar eklemek ( fig.cap) vb. İçin kullanılabilir.
  • Çıktı için en iyi grafik cihazları kullanır. Bu, PDF görüntülerinin yüksek çözünürlükte kaldığı anlamına gelir.

Tablolar

knitr::kable()burada tam olarak açıklandığı gibi bir R Markdown raporuna tabloları dahil etmenin en iyi yoludur . Yine, bu işlev, seçilen çıktı için doğru biçimlendirmeyi otomatik olarak seçmede akıllıdır.

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

R Markdown'da kendi basit tablolarınızı yapmak istiyorsanız ve R Studio kullanıyorsanız, insert_table pakete göz atabilirsiniz . Tablo yapmak için düzenli bir grafik arayüz sağlar.

Tablo sütun genişliğinin özel stilini elde etmek kapsamın ötesindedir knitr, ancak kableExtrapaket bunu başarmaya yardımcı olmak için yazılmıştır: https://cran.r-project.org/web/packages/kableExtra/index.html

Stil İpuçları

R Markdown kısa notlara hala en çok kullanabileceğiniz temel sözdizimi öğrenmek için en iyi yerdir.

Biçimlendirme için potansiyel uzantılar arıyorsanız, bookdownpaketi de keşfetmeye değer. Çapraz referans oluşturma, özel başlıklar oluşturma ve daha fazlasını sağlar: https://bookdown.org/yihui/bookdown/markdown-extensions-by-bookdown.html


Mükemmel çözüm!
Marcus Nunes

Görüntü konumunu nasıl yerinde kilitleyeceğinizi biliyor musunuz? Şu anda onu derlediğimde nerede görüneceğini tahmin etmek çok zor.
wolfsatthedoor

1
Birlikte güreşiyordum ![image caption](\path\to\image.png).docx hale R Markdown bir resim eklemek için çalışıyor, ama senin görene kadar, gizemli başarısız knitr::include_graphics()bugün çözüm. Çok teşekkür ederim!
2019

5

Bir resim eklemek söz konusu olduğunda, r2evans'ın önerisi, ![Caption for the picture.](/path/to/image.png)eğer PDF çıktısı gerekiyorsa sorunlu olabilir.

Knitr işlevi include_graphics knitr::include_graphics('/path/to/image.png') , sizin adınıza, oluşturduğunuz çıktı biçimine en uygun indirimi oluşturacak daha taşınabilir bir alternatiftir.


Meraklı ... ![caption](path/to/image.png)PDF çıktısı gerekiyorsa neden sorunlu? Belki de bu cevap güncel değil (orijinal cevabım gibi), ancak bunu en azından birkaç yıldır PDF çıktısında kullanıyorum.
r2evans

4

Mart ayında bir güverte yapılan sunum ile slidify, Rmarkdown içinde impress.js serin 3D çerçevesidir. Benim index.Rmdbaşlık oluşacağı

---
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

alt dizinler şunlardır:

/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

arka plan kod pasajında ​​resim bulunan bir slayt .Rmd'mde olacaktır:

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

En son üzerinde çalıştığımdan beri bazı sorunlar ortaya çıktı (fotoğraflar artık arka planda değil, R arsamda çok büyük metinler var) ama yerelimde iyi çalışıyor. RPub'larda çalıştırdığımda sorunlar çıkıyor.


2
Yeni bir sorunuz varsa, lütfen Soru Sor düğmesini tıklayarak sorun . Bağlam sağlamaya yardımcı oluyorsa bu soruya bir bağlantı ekleyin.
Jaap

8
bu bir soru değildi, bu bir cevaptı :-)
brigasnuncamais

2
İlk bağlantı koptu.
daknowles
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.