web-dev-qa-db-ja.com

ggplotを保存する関数

プロットを保存する関数を作成したい(ggplotから)。私はそのようなプロットをたくさん持っているので、これは私がより効果的に働くのに役立ちます。

データフレームは次のとおりです。

### creating data frame
music <- c("Blues", "Hip-hop", "Jazz", "Metal", "Rock")
number <- c(8, 7, 4, 6, 11)
df.music <- data.frame(music, number)
colnames(df.music) <- c("Music", "Amount")

次に、プロットを作成します。

### creating bar graph (this part is OK)
myplot <- ggplot(data=df.music, aes(x=music, y=number)) +
 geom_bar(stat="identity") +
 xlab(colnames(df.music)[1]) +
 ylab(colnames(df.music)[2]) +
 ylim(c(0,11)) +
 ggtitle("Ulubiony typ muzyki wśród studentów")

次に、このプロットを.pdfに保存します。

これは動作します:

pdf("Myplot.pdf", width=5, height=5)
plot.music.bad
dev.off()

ただし、保存したいプロットを引数として取る関数を使用して、これを自動化したいと思います。正確な方法はわかりません。ここに私が試したものがあります:

save <- function(myplot){
  plot<- myplot
  pdf("lol.pdf", width=5, height=5)
  plot
  dev.off()
}
### .pdf file is created but doesn't work
save(myplot) 

だから、どうすればそれを行うことができますか?

35
jjankowiak

print()を使用して、_ggplot2_から生成されたプロットをファイルに保存できます。

まず、プロットを保存する関数を定義します。

_savePlot <- function(myPlot) {
        pdf("myPlot.pdf")
        print(myPlot)
        dev.off()
}
_

プロットを作成します。

_ myPlot <- ggplot(ggplot(data=df.music, aes(x=music, y=number)) +
 geom_bar(stat="identity") +
 xlab(colnames(df.music)[1]) +
 ylab(colnames(df.music)[2]) +
 ylim(c(0,11)) +
 ggtitle("Ulubiony typ muzyki wśród studentów")
_

そして最後に関数を呼び出します:

_savePlot(myPlot)
_

または、プロットを作成した後にggsave()を使用することもできます。

_ggsave(filename="myPlot.pdf", plot=myPlot)
_
43
enricoferrero

以下は私にとって有用でしたが、他の誰かにとっても役に立つかもしれません。同様に明示的に参照することなく、最後のプロットを保存できます。

ggsave("filename.pdf", 
 plot = last_plot(), # or give ggplot object name as in myPlot,
 width = 5, height = 5, 
 units = "in", # other options c("in", "cm", "mm"), 
 dpi = 300)
9
Suren

PDFではなく画像ファイルが必要な場合は、次の作品も動作します

ggsave(filename="myPlot.jpg", plot=last_plot())

または、次の追加パラメータを使用します。

ggsave(filename="myPlot.jpg", plot=lastplot(),
       width = 10, height = 5, 
       units = "cm", # other options are "in", "cm", "mm" 
       dpi = 200
       )

また、「eps」、「ps」、「tex」(pictex)、「pdf」、「jpeg」、「tiff」、「png」、「bmp」、「svg」または「wmf」のファイルタイプがサポートされています。

4
Orhan Celik