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


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/

実行コマンドはwindows 7およびOS X 10.11.2の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") [/code]


出力結果

・「gganimate」と「RGA」パッケージの連携例
本サイトでは表示エリアの横サイズが520px以下だと表示が欠けてしまいます。試していませんが、出力されるhtml及びCSSを変更することでレスポンシブル化が可能かと思います。

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


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

関連コンテンツ


スポンサードリンク