18

複数ページのpdfファイルを生成するRのコードがいくつかあります。

pdf("myplot.pdf", width=8.5, height=5)

My.Plot(my.data, var1, var2)
My.Plot(my.data, var3, var2)
My.Plot(my.data, var4, var2)

dev.off()

My.Plot() は、必要なデータを解析し、ggplot を使用してグラフを作成する単なる関数です。

上記は問題なく動作します。ただし、このコードを関数に入れると、プロットが生成されず、出力 PDF を読み取ったり開いたりすることができません。

generate.PDF <- function(my.data) {    
    pdf("myplot.pdf", width=8.5, height=5)

    My.Plot(my.data, var1, var2)
    My.Plot(my.data, var3, var2)
    My.Plot(my.data, var4, var2)

    dev.off()
}
4

1 に答える 1

21

print()関数内では、次のように関数を呼び出して実際にキャンバスにペイントする必要があります。

x <- runif(20,10,20)
y <- runif(20,30,50)
data<-data.frame(x,y)
generate.PDF <- function(data) {    
  pdf("/home/aksel/Downloads/myplot.pdf", width=8.5, height=5,onefile=T)
  plot1 <- plot(x,y)
  plot2 <- plot(y,x)
  plot3 <- plot(x,y*2)
  print(plot1)
  print(plot2)
  print(plot3)
  dev.off()
}
generate.PDF(data)
于 2013-10-10T06:46:34.103 に答える