gglot2を使っている時に、themeを設定しようとするとエラーを吐きます。今回はtheme関数のplot.marginを利用して、グラフ外の余白を設定しているときに起こりました。ggplot2のバージョンは1.0.0。
##テストデータの用意
test<- data.frame("Day"=c(1,3,5),"Score"=c(10,20,30))
##折れ線グラフを描く
library(ggplot2)
ggplot() +
geom_line(data=test,aes(x=Day,y=Score),size=0.4,alpha=0.4) + geom_point(data=test,aes(x=Day,y=Score),alpha=0.7)
このままですと、余白をほとんど明けずにplotが生成されます。
これを解決するために、theme関数を用いて余白のサイズを指定します。
library(ggplot2)
ggplot() +
geom_line(data=test,aes(x=Day,y=Score),size=0.4,alpha=0.4) + geom_point(data=test,aes(x=Day,y=Score),alpha=0.7)+
theme(plot.margin = unit(c(5, 5, 5, 5), "cm"))
すると、エラーになります。
ggplot() +
+ geom_line(data=test,aes(x=Day,y=Score),size=0.4,alpha=0.4) + geom_point(data=test,aes(x=Day,y=Score),alpha=0.7)+
+ theme(plot.margin = unit(c(5, 5, 5, 5), "cm"))
以下にエラー theme(plot.margin = unit(c(5, 5, 5, 5), "cm")) :
関数 "unit" を見つけることができませんでした
ggplot2のバージョンは、毎度メソッドの変更がとても多く、webの情報が古くてあてにならないことがよく起こります。今回もその手のエラーかと思って色々調べましたが解決できずにいました。
ふと、エラーを英語のクエリーにして検索したところ(Error: could not find function "unit")こちらがみつかりました。library(grid)が必要なようです。
library(grid)
ggplot() +
+ geom_line(data=test,aes(x=Day,y=Score),size=0.4,alpha=0.4) + geom_point(data=test,aes(x=Day,y=Score),alpha=0.7)+
+ theme(plot.margin = unit(c(5, 5, 5, 5), "cm"))
正しい余白はもっと大きい(画像は周りをカットしているの)ですが、plotの周りの余白をちゃんと5cm開けてplotできました。
なんといいますか、、、関数の中にrequire(grid)入れてくれよ。。頼むぜggplot!