2017-12-02 10 views
1

私は5つのデータフレームdf1-df5を持っています。ggplot2()とgridExtra() - マルチプロットと単一プロットの統一性を得るにはどうすればいいですか?

ggplot2()を使用して、データフレームごとに1つずつ、5つの散布図を作成したいと思います。私はプロット(df1p-df4p)のうちの4つをと一緒にとグループ化したいが、第5のもの(df5p)はとすると、となる。

私はdf1p-df4pを一緒にグループ化することができました。問題は、フォントとdfp5プロットの全体的な外観が、df1p-df4pプロットのジョイントと異なることです。私はいくつかの一貫性が欲しいので、df5pプロットはdf1p-df4pグループ化のプロットの1つと同様のサイズ、フォント、フォーマットであることが望ましいです。

ご協力いただければ幸いです。

始点(DF1-DF5):

df1 <- data.frame(var1=c(1.23,4.23,10.32),var2=c(1,6,18.7)) 
df2 <- data.frame(var3=c(3.32,5.34,18.45),var4=c(3.54,9.43,17.34)) 
df3 <- data.frame(var5=c(3.43,19.32,1.23),var6=c(2.32,19.12,4.23)) 
df4 <- data.frame(var7=c(4.54,2.23,19.32),var8=c(1.54,6.43,19.4)) 
df5 <- data.frame(var9=c(5.43,1.23,19.54),var10=c(1.23,8.43,19.9)) 

現在コード:

library(gridExtra) 
library(ggplot2) 

df1p <- ggplot(df1, aes(x=var1, y=var2)) + geom_point(shape=2) + ggtitle("df1 plot") 
df2p <- ggplot(df2, aes(x=var3, y=var4)) + geom_point(shape=2) + ggtitle("df2 plot") 
df3p <- ggplot(df3, aes(x=var5, y=var6)) + geom_point(shape=2) + ggtitle("df3 plot") 
df4p <- ggplot(df4, aes(x=var7, y=var8)) + geom_point(shape=2) + ggtitle("df4 plot") 
df5p <- ggplot(df5, aes(x=var9, y=var10)) + geom_point(shape=2) + ggtitle("df5 plot") 

df1to4p<- grid.arrange(df1p,df2p,df3p,df4p, ncol=2) 
+0

、彼らがどのように異なりますか?プロットはすべてフォントと他の機能に関して同じですが、サイジングを除き、プロットのサイズはプロットの印刷方法(デバイスのサイズなど)によって異なります。 – eipi10

答えて

0

ここで同様のサイズのプロットをもたらす方法でプロットをレイアウトの例です。私はまた、コードを短くするためのリストにあなたのデータフレームとプロットを置くの自由を撮影した:

library(gridExtra) 
library(ggplot2) 

# List of data frames 
dl = mget(paste0("df",1:5)) 

# List of plots 
pl = lapply(names(dl), function(dat) { 
    v = names(dl[[dat]]) 
    ggplot(dl[[dat]], aes_string(x=v[1], y=v[2])) + 
    geom_point(shape=2) + 
    ggtitle(paste(dat, "plot")) 
}) 

png("4plots.png", 400, 400) 
grid.arrange(grobs=pl[1:4], ncol=2) 
dev.off() 

enter image description here

png("5thPlot.png", 200, 200) 
pl[[5]] 
dev.off() 

enter image description here

関連する問題