その他

【初心者限定】ggplotで思い通りのグラフを描く

スポンサーリンク

ggplotライブラリを読み込む

Rには標準でplot()で描画をすることが可能ですが、手軽に美しいグラフを描きたいのであれば、是非ggplot2を使ってください。まだインストールされていないのであれば、下のコマンドでインストール→ライブラリの読み込みを完了してください。

install.packages("ggplot2")
library(ggplot2)

たったこれだけで準備は完了です。さあ、思い通りのグラフを描きましょう。

基本的なグラフ描画のステップ

基本的には次の3つのステップで描きます。

  1. キャンバスの設定
  2. グラフを描く
  3. テーマの設定

つまり、まずグラフを描くためのキャンバスを準備して、そこに描きたいグラフを追加します。これでグラフは完成です。これに細かな体裁の設定をしたければ、テーマの設定をおこないます。

ここからは、ggplot2の組み込みデータセットであるdiamondsを使って実際にグラフを描いていきましょう。

キャンバスの設定

では、早速、キャンバスの設定をしていきましょう。キャンバスの設定に使うのはggplot()だけです。使うデータとx,y軸の設定を次の「グラフを描く」のステップで指定することもできますが、【初心者限定】のこの記事ではggplot()内で指定することにします。次のような書式で設定します。

ggplot(data=利用するデータのオブジェクト名,
mapping=aes(x=”x軸に利用する列名”,y=”y軸に利用する列名”))

ここまでを記述していきましょう。まずはデータセットdiamondsの中身を確認してみます。

head(diamonds,5)
caratcutcolorclaritydepthtablepricexyz
0.23IdealESI261.5553263.953.982.43
0.21PremiumESI159.8613263.893.842.31
0.23GoodEVS156.9653274.054.072.31
0.29PremiumIVS262.4583344.204.232.63
0.31GoodJSI263.3583354.344.352.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()

すると、グラフの見た目が変わったのがおわかりでしょうか。いろんなテーマを指定して試してみてください。今回の実行結果は以下となります。

スポンサーリンク

まとめ

さて、今回はここまでとなります。いかがでしたでしょうか?グラフ描画は思ったより簡単!と思ってもらえたら幸いです。今回は【初心者限定】ということで、細かな部分を省いています。そのうち、【中級者向け】の記事を書きたいと思います。

コメント

タイトルとURLをコピーしました