R言語によるデータの視覚化

https://gyazo.com/a6d9db34eac9b4ef35ad5982432c68c2

データの可視化

データの特徴を理解するには,グラフなどを利用してデータを可視化することが重要です. R言語には散布図やヒストグラムなどで可視化するための機能がありますが, ここでは,よりリッチな可視化を実現するために,拡張パッケージのggplot2を採用します. ggplot2には,簡単に素早く描画するqplot関数と,複雑な描画が可能なggplot関数があります. 今回は,qplot関数に注目します.

スクリプトの作成

コードを入力し保存するためのスクリプトを作成しましょう. [ファイル]-[新しいスクリプト]をクリックし,Rエディタを表示します. 次に,[ファイル]-[保存]をクリックして,スクリプトを保存します. このとき,ファイル名はchapter3としてください. また,ファイルの保存場所と作業ディレクトリをデスクトップに変更しておきます.

ggplot2のインストール

まずは,ggplot2 パッケージをインストールしましょう. ツールバーから[パッケージ]-[パッケージの読み込み]をクリックし, パッケージの一覧からggplot2を選択します. これで対応するパッケージがダウンロードされます.

https://gyazo.com/1d97ed56538efccceb042688c397d31c

このパッケージを利用可能な状態にするには, library関数を利用します. ここでは,スクリプトに下記のように記述しておきます.

library(ggplot2)

これで,ggplot2 を利用する準備が整いました.

ヒストグラム

まず,ヒストグラム を描いてみましょう. 対象となるデータフレームは下記のように生成しましょう. ここで,data.frame は,引数のベクトルを列とするデータフレームを生成する関数です. また,value は列名を表しています.

y <- c(1,1,2,3,5,6,6,6,7,9)
d1 <- data.frame(value=y)

プロンプトでデータフレームd1 の要素を確認します. 要素はvalueの列だけで構成された1次元のデータとなります.

> d1
   value
1      1
2      1
3      2
4      3
5      5
6      6
7      6
8      6
9      7
10     9

qplot() 関数を利用して,このデータフレームのヒストグラムを描きます. 引数には, Y軸の列名data=データフレーム名 を与えます. ここでは,下記のように valuedata=d1 が引数となります.

> qplot(value,data=d1)

実行すると下記のようなヒストグラムが表示されます.

https://gyazo.com/fd3d7958421f4e417cbd5b0813ad8856

散布図

次に,散布図 を描いてみましょう. 対象となるデータフレームは下記のように生成しましょう(y は前節のベクトルを利用する). ここで,data.frame は,引数のベクトルを列とするデータフレームを生成する関数です. また,idvalue は列名を表しています.

x <- c(1,2,3,4,5,6,7,8,9,10)
d2 <- data.frame(id=x,value=y)

プロンプトでデータフレームd2の要素を確認します. 要素はidとvalueのペアで構成された2次元のデータとなります.

> d2
    id value
1   1     1
2   2     1
3   3     2
4   4     3
5   5     5
6   6     6
7   7     6
8   8     6
9   9     7
10 10     9

qplot() 関数を利用して,このデータフレームの散布図を描きます. 引数には,X軸の列名Y軸の列名data=データフレーム名 を与えます. ここでは,下記のようにidvaluedata=d が引数となります.

> qplot(id,value,data=d2)

実行すると下記のような散布図が表示されます.

https://gyazo.com/f037433ece0d39e0713ed76fb8aa1e1a

折れ線グラフ

折れ線グラフを描いてみましょう. 対象となるデータは散布図と同じd2を用います. qplot() 関数には,散布図の引数に加えて geom=“line” を記述します.

> qplot(id,value,data=d2,geom="line")

実行すると下記のような折れ線グラフが表示されます.

https://gyazo.com/e8f5ee4b1df5b94e55e61bd2baece210

課題

組み込みのデータフレームであるirisSepal.LengthSepal.Width の2次元のデータで散布図を描いてください. このとき,引数にcolor=Speciesを加え,種類ごとに色分けすること. この アイリス(iris)は,セトナ(setosa),バーシクル(versicolor), バージニカ(virginica)という3種類のあやめのデータです. ちなみに,Sepal.Lengthがく片長Sepal.Widthがく片幅を意味しています. ソースはchapter3.Rに記述し,コンソールの出力結果,グラフ(散布図)の画像ファイル,chapter3.R を提出すること.

https://gyazo.com/ed186be8efaf274c8d29755b28f2f7f2

参考書籍

愛知県名古屋市にある椙山女学園大学 文化情報学部 向研究室の公式サイトです. 専門は情報科学であり,人工知能やデータベースなどの技術要素を指導しています. この公式サイトでは,授業で使用している教材を公開すると共に, ベールに包まれた女子大教員のミステリアスな日常を4コマ漫画でお伝えしていきます. サイトに関するご意見やご質問はFacebookまたはTwitterでお問い合わせください.