2017-08-18 5 views
3

いくつかのプロットの横に画像を並べたいと思います。私の例では、次のようになります。R - グリッドに配置するときの画像の高さを変更する方法

library(grid) 
library(gridExtra) 
library(ggplot2) 
library(RCurl) 
library(png) 

img0 <- readPNG(getURLContent('http://carpng.com/wp-content/uploads/thumb/red-cartoon-car-8056-0.png')) 
grob0 <- rasterGrob(img0) 

p <- ggplot(mpg, aes(displ, hwy))+ geom_point()+ geom_line() 
p3 <- grid.arrange(p,p,p) 

grid.arrange(grob0, p3, ncol=2) 

に似ています:私は車のイメージの高さは、3つのプロットの高さを一致させたい enter image description here

実際のデータでは、プロットのx軸の長さが異なっているので、プロットする方法がありますので、x軸は互いに相対的にスケーリングされていますか?

ありがとうございます。

答えて

3

これを試してみてください:

library(grid) 
library(gridExtra) 
library(ggplot2) 
library(RCurl) 
library(png) 

img0 <- readPNG(getURLContent('http://carpng.com/wp-content/uploads/thumb/red-cartoon-car-8056-0.png')) 

# Set height of image. 
# Image has white space above and below the car 
grob0 <- rasterGrob(img0, height= unit(1,"npc"), just=c("center","center")) 

p <- ggplot(mpg, aes(displ, hwy))+ geom_point()+ geom_line() 
p3 <- grid.arrange(p,p,p) 
grid.arrange(grob0, p3, ncol=2) 

enter image description here

は車の上や下に空白をトリミング:

img0 <- img0[75:225,,] 
grob0 <- rasterGrob(img0, height= unit(1,"npc"), just=c("center","center")) 
grid.arrange(grob0, p3, ncol=2) 

enter image description here

がトリミングされた画像をストレッチ:

grob0 <- rasterGrob(img0, width=unit(1,"npc"), height=unit(1,"npc"), 
     just=c("center","center")) 
grid.arrange(grob0, p3, ncol=2) 

enter image description here

+0

こんにちはマルコ答えてくれてありがとう。私が望むのは、3つのプロットを合わせた高さまで車のためです。私はそれを明確にしていない場合は申し訳ありません。 – AudileF

+0

@AudileF私の答えの修正版を見てください。画像には周囲に空白があることに注意してください。これは、車の高さが3つのプロットの高さに達しない理由です。 –

+0

工場に感謝します。完璧に動作します。 – AudileF

関連する問題