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を変更することでレスポンシブル化が可能かと思います。
・参考:月間の時間別アクセス総数を棒グラフで表示
少しでも、あなたの解析が楽になりますように!!