Rでコマンド:gganimateとRGAパッケージの連携例

Rの解析に役に立つ記事
スポンサーリンク

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を変更することでレスポンシブル化が可能かと思います。

・参考:月間の時間別アクセス総数を棒グラフで表示

gganimateRga2

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

タイトルとURLをコピーしました