読者です 読者をやめる 読者になる 読者になる

廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

RGoogleAnalytics でとりあえず折れ線グラフ

セットアップ、アカウントのオーサライズは下の記事を参照。
RGoogleAnalytics をいじっている - 廿TT

# Loading the RGoogleAnalytics library
library("RGoogleAnalytics")

# 1. Authorize your account and paste the accesstoken 
query <- QueryBuilder()
access_token <- query$authorize()

で、アクセストークンをコピペして、

ga <- RGoogleAnalytics()
ga.profiles <- ga$GetProfileData(access_token)


日次で取得:

query$Init(start.date = "2013-06-01",
           end.date = "2014-06-30",
           dimensions = "ga:date",
           metrics = "ga:visits",
#           max.results = 10000000000,
#
           table.id = paste("ga:",ga.profiles$id[1],sep="",collapse=","),
#
#ga.profiles$id にプロファイルIDが入ってるので対象のプロファイルを選ぶ
# 
          access_token=access_token)
dat1 <- ga$GetReportData(query)

こんな感じでデータが取れる。

> head(dat1)
      date visits
1 20130601      0
2 20130602      0
3 20130603      1
4 20130604      0
5 20130605      5
6 20130606      1

date が文字列で入ってるので、時系列オブジェクトに変える。

len <- length(dat1$date)
t1 <- seq.Date(as.Date("2013-06-01"), by="1 day", length.out=len)
dat1$Date <- t1

プロット。

library(ggplot2)
library(scales) #date_formatを使うのに必要
ggplot(dat1,aes(x=Date,y=visits)) +
  scale_x_date(labels = date_format("20%y/%m/%d"))+
  geom_line(colour=4,size=1) +
  theme_bw(20)

f:id:abrahamcow:20140707025344p:plain


月次で取得:

query$Init(start.date = "2013-06-01",
           end.date = "2014-06-30",
           dimensions = "ga:yearMonth",  
#ga:monthだと扱いにくい感じのテーブルがくる
           metrics = "ga:visits",
           #max.results = 10000000000,
           table.id = paste("ga:",ga.profiles$id[1],sep="",collapse=","),
           access_token=access_token)
dat2 <- ga$GetReportData(query)
#
#yearMonthを時系列オブジェクトに変える
len <- length(dat2$yearMonth)
t2 <-seq.Date(as.Date("2013-06-01"), by="1 month", length.out=len)
dat2$month <- t2
#
#プロット
ggplot(dat2,aes(x=month,y=visits)) +
  scale_x_date(labels = date_format("20%y/%m"))+
  geom_line(colour=4,size=1) +
  theme_bw(20)

f:id:abrahamcow:20140707025825p:plain

x 軸の日付を一ヶ月ごとに振りたい場合は、scale_x_date の引数、"breaks" に "date_breaks(width = "1 month")" を与える。

ggplot(dat2,aes(x=month,y=visits)) +
  scale_x_date(labels = date_format("20%y/%m"),breaks=date_breaks(width = "1 month"))+
  geom_line(colour=4,size=1) +
  theme_bw(20)

f:id:abrahamcow:20150217073114p:plain

付記:
文字列をDate型に変えるところ、関数化した。
RGoogleAnalytics の "yearMonth" と "date" を日付オブジェクトにかえる関数 - 廿TT

リンク集: