簡體   English   中英

R:使用魔法在 1 個面板中顯示 4 個 png 圖像

[英]R: Using magick to display 4 png images in 1 panel

我有許多從另一個腳本保存為 png 的圖像(圖):

  • x1.png
  • x2.png
  • x3.png
  • x4.png
  • y1.png
  • y2.png

等等。我正在嘗試制作這些的 gif,我已經在 magick 中成功完成了。 但是,這會每幀循環 1 個圖像。 我正在嘗試一次加載 4 張圖像,並將它們拼接在一個面板上,並創建這些面板的 gif。

我已經成功創建了這些圖像的 gif。 但是,我想一次加載 4 張圖像,然后將它們形成 gif。

y <- (list.files(path='foo/bar/', pattern = '*1.png', full.names = TRUE))
plot(y[1]) # does nothing

如何在一個面板中一次加載或顯示 4 個 png? 我通常可以通過以下方式做到這一點:

par(mfrow=c(2,2))
plot(a)
plot(b)
plot(c)
plot(d)

但是我正在使用magick來加載png(圖,但我顯然不能將它們視為常規圖)

img1 <- magick::image_read("foo/bar/x1.png")
plot(img1) # does nothing
print(img1) # displays img 1 as a plot, and prints some details in the output window.

我確信我可以重寫我的其他代碼以顯示 4 個圖,並將它們保存為 1 個 png,但我正在嘗試編寫一個小的單獨腳本來加載這些預先存在的圖像,並將 png 拼接在一起。 這可以使用 par(mfrow=c(2,2)) 嗎?

我敢肯定我錯過了很多簡單的事情。 謝謝大家的時間。

您可以使用蒙太奇在 ImageMagick 中做到這一點。 例如

montage lena.jpg mandril3.jpg zelda1.jpg peppers.jpg -tile 2x2 -geometry +0+0 montage.gif

在此處輸入圖像描述

要在 R 中運行 ImageMagick 命令(或任何終端代碼),您只需將其括在引號中並將其傳遞給 function 系統()。

system("montage lena.jpg mandril3.jpg zelda1.jpg peppers.jpg -tile 2x2 -geometry +0+0 montage.gif")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM