Rのグラフ描画をggplot2にしてみた〜Mステに初出演した際のBUMPツイートを可視化〜

はじめに

本屋でR本を立ち読みしてたら"ggplot2がおすすめだよ"とあったので,試してみた.
レイヤーを重ねてグラフを書いていくので,操作がplotよりも簡単とのこと.

導入
> install.packages("ggplot2", dependencies=TRUE)

Rを起動してい上記のコマンドを入力するだけ.

データについて

描画は,Rに予め用意されているirisのデータで試してもいいんですが,それだと面白みにかけるので,
「図書館」が含まれるtweetを集めてみた By Ruby - 鴨川にあこがれる日々
で集めたツイートデータを対象に描画してみました.

平成26年7月25日は初めて地上波でBUMP OF CHICKENミュージックステーションに出演しました.
なんか面白そうだと思い,「BUMP*1」と「バンプ」を含むツイートをTwitterのSearchAPIで取得.
リツートについてはオリジナルのツイート以外は弾きました.
総ツイート数は384,926件です.

使いかた

インストールしたら,読み込む

> library(ggplot2)

#CSV形式のファイルを読み込む
> bump = read.csv('bump7_25_tweets.csv')

> bump
   X00   X324
1    1    132
2    2     80
3    3     55
4    4     28
5    5     40
6    6     82
7    7    314
8    8    381
9    9    268
10  10    191
11  11    178
12  12    956
13  13   2763
14  14   2380
15  15   3068
16  16   2809
17  17   4186
18  18  10648
19  19  62933
20  20  44951
21  21 208457
22  22  24213
23  23  15813

#カラム名(列名)がわかりづらいので変更
> names(bump) = c('hour','tweets')

> bump
   hour tweets
1     1    132
2     2     80
3     3     55
4     4     28
5     5     40
6     6     82
7     7    314
8     8    381
9     9    268
10   10    191
11   11    178
12   12    956
13   13   2763
14   14   2380
15   15   3068
16   16   2809
17   17   4186
18   18  10648
19   19  62933
20   20  44951
21   21 208457
22   22  24213
23   23  15813

#  折れ線グラフで描画 横軸と縦軸を指定 横軸(x)は時間,縦軸(y)にはツイート数を取る 
> p = ggplot(bump,aes(x=hour,y=tweets))
> p + geom_line()

# 描画した画像を保存
> ggsave('hogehoge.png')

f:id:another16javac:20140824005344p:plain
変に色を付けるとグラフがみづらくなるのでこんな感じです.

BUMPが演奏したのは,大体21時30分くらいだったので,ちょうどx軸が21のところでピーク(208457件/hour)が来ています.
21時の部分がバーストしているので,午前中がほとんどないようにみえます.
21時台については5分刻みでみてみるとまたその中でもまたピークがありそうです.(おそらく30分周辺)

おわりに

簡単にggplot2をの練習をしました.
折れ線グラフ以外にもヒストグラムや散布図も描画できます.
今回使ったデータ自体はツイートテキストもあるので,それも使っていろいろできたらと思います..

*1:大文字と小文字区別しない