RでFukuoka City Wi-Fiの利用状況を可視化する

オープンデータとして、Fukuoka City Wi-Fiの利用状況のCSVファイルが公開されています↓

Fukuoka City Wi-Fi 利用状況 - データセット - 福岡市のCKAN

が、例によってなかなか扱いにくそうなフォーマットになっております↓

福岡市のオープンデータサイトで公開されていたCSVの形式

1拠点の1日が1行になっており、その行の中に0時台、1時台、2時台、~、23時台のように横に伸びてデータが格納されています。別の日は、別の行に格納されています。

そのままじゃ扱いにくそうなので、日付時刻型で表現して、形もシンプルにしましょう。

d <- read.csv("201410access.csv")
 
d <- d[d$X != "合計", ] # 合計が入っているレコードは削除する
 
df <- data.frame() # 空のデータフレームを用意しておく
 
for ( i in 1:nrow(d) ) {
  tmp  <- paste(d[i, ]$X, sprintf("%02d", 0:23))
  YmdH <- strptime( tmp, "%Y%m%d %H")
 
  value <- as.vector(t(d[i, 4:27]))
 
  df <- rbind(df, data.frame( 年月日時 = YmdH,
                              拠点名   = d[i, ]$拠点名,
                              認証回数 = value ) )
}


そうすると、冗長だけどシンプルな形式になりました↓

CSVの形式を変えてみたもの

ひと月の合計値で棒グラフを書いてみましょう。認証回数の少ない順にソートしています。なんとなくggplotを使ってみました。(いまいち、まだ慣れていない感が・・・)

ggplotのリファレンスはウェブにも秀逸なものがあるので、細かいところはそちらでチェックしてください。

library(ggplot2)
s      <- sort(tapply(df$認証回数, df$拠点名, sum))
df_sum <- data.frame(拠点名=names(s), 認証回数=s)
 
pdf("認証回数合計グラフ.pdf", family="Japan1GothicBBB", width=11.69, height=8.27)
g <- ggplot(df_sum, aes(x=reorder(拠点名, 認証回数), y=認証回数))
g <- g + geom_bar(width=0.8, stat="identity")
g <- g + geom_text(aes(label=認証回数), angle=90, hjust=-0.1, vjust=0.4, size=3) 
g <- g + theme(axis.text.x  = element_text(angle=90, hjust=1, vjust=0.4, size=8))
g <- g + ggtitle("Fukuoka City Wi-Fi 認証回数の合計値(2014年10月)") + xlab("") + ylab("認証回数の合計")
g <- g + ylim(0,115000) # 数字が切れないギリギリ
plot(g)
dev.off()


Fukuoka City Wi-Fi 認証回数の合計値(2014年10月)(PDFファイル)

↓PDFファイルのスクリーンショット
Fukuoka City Wi-Fi ひと月のアクセス数の合計値

やっぱり、博多駅、天神駅が利用者が多いですね。アゴーラ福岡のゼロ(しかも3ヶ月連続)ってのは何だろう。稼動していなかったのか、本当に誰も使わなかっただけなのか。

せっかく日付時刻型にしたので、時系列の推移も見てみましょう。

pdf("1時間ごとの認証回数.pdf", family="Japan1GothicBBB", width=8.27, height=11.69 * 10)
g <- ggplot(df, aes(x=年月日時, y=認証回数))
g <- g + geom_line(colour="black")
g <- g + facet_wrap( ~ 拠点名, ncol=1)
g <- g + ggtitle("Fukuoka City Wi-Fi 1時間ごと認証回数 (2014年10月)")
plot(g)
dev.off()


ggplotだと、拠点ごとにわけて複数のグラフにするってのが簡単にできますね。

1時間ごとの認証回数.pdf(PDFファイル)

↓PDFファイルのスクリーンショット
Fukuoka City Wi-Fi 1時間ごとの利用者数の推移

なんか心電図みたいですね。これが心電図なら、アゴーラ福岡は、ご臨終ですね。

基本1日ごとに山になっているんですが、朝と晩にピークがあって昼間に下がる感じで2つの山っぽく(M字みたいに)なっているものも多いです。そして、博多駅などは土日祝日は山が小さくなってますね。図書館は、平坦になっていることで休館日が分かります。

公開されているのは拠点ごと(=複数のアクセスポイント)のデータですが、APごとにデータを見られれば、APが足りているのか不足気味なのかとか分かりそうです。

アゴーラは撤退してもいいんじゃないでしょうか。そして、うちの集合住宅の目の前にでも付けてもらえると助かります。

っていうか、

Fukuoka City Wi-Fi各拠点の1時間ごとの利用状況(認証回数)のデータです。月1回中旬頃に前月分データを提供。

なんて、書いてあるくせに、去年(2014年)の10月のデータを最後にデータが更新されていません。

作成者  : 福岡市市長室
メンテナー: 広報課

となっているので、これはメンテナーがさぼっているってことでしょうか。そういうことは、やめんてな。

「エントリを駄洒落で締める四十代」

コメント

このブログの人気の投稿

Rのグラフで軸の目盛りの刻み幅を変更する方法

Rで繰り返しを含む数列の生成(rep関数、seq関数)

reorderを使ってggplotの棒グラフの並び順を降順にする方法