ggplotライブラリを読み込む
Rには標準でplot()で描画をすることが可能ですが、手軽に美しいグラフを描きたいのであれば、是非ggplot2を使ってください。まだインストールされていないのであれば、下のコマンドでインストール→ライブラリの読み込みを完了してください。
install.packages("ggplot2")
library(ggplot2)
たったこれだけで準備は完了です。さあ、思い通りのグラフを描きましょう。
基本的なグラフ描画のステップ
基本的には次の3つのステップで描きます。
- キャンバスの設定
- グラフを描く
- テーマの設定
つまり、まずグラフを描くためのキャンバスを準備して、そこに描きたいグラフを追加します。これでグラフは完成です。これに細かな体裁の設定をしたければ、テーマの設定をおこないます。
ここからは、ggplot2の組み込みデータセットであるdiamondsを使って実際にグラフを描いていきましょう。
キャンバスの設定
では、早速、キャンバスの設定をしていきましょう。キャンバスの設定に使うのはggplot()だけです。使うデータとx,y軸の設定を次の「グラフを描く」のステップで指定することもできますが、【初心者限定】のこの記事ではggplot()内で指定することにします。次のような書式で設定します。
ggplot(data=利用するデータのオブジェクト名,
mapping=aes(x=”x軸に利用する列名”,y=”y軸に利用する列名”))
ここまでを記述していきましょう。まずはデータセットdiamondsの中身を確認してみます。
head(diamonds,5)
carat | cut | color | clarity | depth | table | price | x | y | z |
---|---|---|---|---|---|---|---|---|---|
0.23 | Ideal | E | SI2 | 61.5 | 55 | 326 | 3.95 | 3.98 | 2.43 |
0.21 | Premium | E | SI1 | 59.8 | 61 | 326 | 3.89 | 3.84 | 2.31 |
0.23 | Good | E | VS1 | 56.9 | 65 | 327 | 4.05 | 4.07 | 2.31 |
0.29 | Premium | I | VS2 | 62.4 | 58 | 334 | 4.20 | 4.23 | 2.63 |
0.31 | Good | J | SI2 | 63.3 | 58 | 335 | 4.34 | 4.35 | 2.75 |
ここで、データセットの各列の意味は次のようになります。
price:price in US dollars (\$326–\$18,823)
carat:weight of the diamond (0.2–5.01)
cut:quality of the cut (Fair, Good, Very Good, Premium, Ideal)
color:diamond colour, from J (worst) to D (best)
clarity:a measurement of how clear the diamond is (I1 (worst), SI2, SI1, VS2, VS1, VVS2, VVS1, IF (best))
x:length in mm (0–10.74)
y:width in mm (0–58.9)
z:depth in mm (0–31.8)
depth:total depth percentage = z / mean(x, y) = 2 * z / (x + y) (43–79)
table:width of top of diamond relative to widest point (43–95)
ここではcaratとpriceの関係を散布図で描くことにしましょう。まずは、上で紹介したキャンバスの設定です。
ggplot(data=diamonds,mapping=aes(x=carat,y=price)
となります。これを実行してみてください。まだ散布図は描かれず、キャンバスだけができたかと思います。実行結果を掲載しておきます。
グラフを描く
次に、グラフを描いていきます。これは描きたいグラフを「+」していくだけです。散布図であれば、geom_point()を指定すればOKです。実際にやってみましょう。
ggplot(data=利用するデータのオブジェクト名,
mapping=aes(x="x軸に利用する列名",y="y軸に利用する列名"))+
geom_point()
でOKです。加えたコード「+geom_point()」だけ。簡単ですね。実行結果も掲載しておきます。
うまく描けたでしょうか。グラフ部分はこのように描きたいグラフを指定するだけです。グラフの一覧をまとめると以下のようになります。
グラフの種類 | コード |
---|---|
散布図 | geom_point() |
折れ線グラフ | geom_line() |
ヒストグラム | geom_histogram() |
密度曲線 | geom_density() |
箱ひげ図 | geom_boxplot() |
バイオリンプロット | geom_violin() |
でもちょっと、殺風景であるのと、せっかくなので「cut」の値ごとに色分けしてみましょう。これは、ggplotの中でcolourに色分けしたい列名を指定すればOKです。
ggplot(data=diamonds,mapping=aes(x=carat,y=price,colour=cut))+
geom_point()
すると、以下のように色分けができました。
テーマの設定
さて、最後のステップです。細かな体裁の調整をすることができます。今回は、まず先ほど色分けしたグラフをグループごとに分割したグラフにしてみましょう。facet_wrap(~グループ列名)とします。
ggplot(data=diamonds,mapping=aes(x=carat,y=price,colour=cut))+
geom_point()+
facet_wrap(~cut,scales="free")
すると、以下のようにcutごとにグラフを分割することができます。
最後にグラフテーマの変更です。これもこれまで作ってきたグラフに「+」でグラフテーマを加えるだけです。ここでは、「theme_linedraw()」を使ってみましょう。
ggplot(data=diamonds,mapping=aes(x=carat,y=price,colour=cut))+
geom_point()+
facet_wrap(~cut,scales="free")+
theme_linedraw()
すると、グラフの見た目が変わったのがおわかりでしょうか。いろんなテーマを指定して試してみてください。今回の実行結果は以下となります。
まとめ
さて、今回はここまでとなります。いかがでしたでしょうか?グラフ描画は思ったより簡単!と思ってもらえたら幸いです。今回は【初心者限定】ということで、細かな部分を省いています。そのうち、【中級者向け】の記事を書きたいと思います。
コメント