ggplot2パッケージの出力をアニメーション化する「gganimate」パッケージとGoogle Analyticsのデータ取得に便利な「RGA」パッケージの連携例です。
なお、「gganimate」パッケージの設計上、geom_barコマンドのアニメーションはうまく表示されません。紹介コマンドではgeom_pointコマンドと指定範囲を塗りつぶすgeom_ribbonコマンドを使用しています。
・gganimateパッケージの紹介
https://www.karada-good.net/analyticsr/r-401/
・RGAパッケージの紹介
https://www.karada-good.net/analyticsr/r-141/
実行コマンドはR version 3.2.3で確認しています。
実行コマンド
詳細はコメント、コマンドのヘルプを確認してください。
#パッケージの読み込み
library("RGA")
library("gganimate")
library("ggplot2")
#authorizeコマンド
authorize()
#読み込みidを確認:list_profilesコマンド
#list_profiles()
#データ取得idを設定
IDSet <- "ga:idを入力"
###取得年/月を設定#####
year <- 2016
month <- 1
#範囲を計算
StartDate <- as.Date(paste0(year, "-", formatC(month, width = 2, flag = "0"), "-01"))
EndDate <- as.Date(format(as.Date(format(StartDate, "%Y%m01"), "%Y%m%d") + 31, "%Y%m01"),
"%Y%m%d") - 1
#曜日,日のusers,sessions,pageviewsを取得
GetData <- get_ga(profileId = IDSet, start.date = StartDate, end.date = EndDate,
metrics = "ga:users, ga:sessions, ga:pageviews",
dimensions = "ga:date, ga:dayOfWeekName, ga:hour")
#日データを文字に変換
GetData[, 1] <- paste0(GetData[, 1], "/", GetData[, 2])
#時間データを2桁に整形
GetData[, 3] <- formatC(GetData[, 3], width = 2, flag = "0")
#プロット
DataPlot <- ggplot(GetData, aes(x = GetData[, 3], y = GetData[, 4],
color = "red", frame = GetData[, 1])) +
geom_point(show.legend = FALSE) +
geom_ribbon(aes(ymin = 0, ymax = GetData[, 4]),
group = 1, fill = "blue", alpha = 0.6, show.legend = FALSE) +
labs(x = "Hour", y = "users")
#htmlで出力
gg_animate(DataPlot, filename = "GAData.html", title_frame = TRUE)
#参考:月間の時間別アクセス総数を棒グラフで表示
ggplot(GetData, aes(x = GetData[, 3], y = GetData[, 4], fill = "red")) +
geom_bar(stat = 'identity', show.legend = FALSE, width = 0.8) +
labs(x = "Hour", y = "Total Users")
出力結果
・「gganimate」と「RGA」パッケージの連携例
本サイトでは表示エリアの横サイズが520px以下だと表示が欠けてしまいます。試していませんが、出力されるhtml及びCSSを変更することでレスポンシブル化が可能かと思います。
・参考:月間の時間別アクセス総数を棒グラフで表示

少しでも、あなたの解析が楽になりますように!!