Skip to content

Instantly share code, notes, and snippets.

@nezuQ
Created May 10, 2014 08:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nezuQ/d18afbaa91e403b70507 to your computer and use it in GitHub Desktop.
Save nezuQ/d18afbaa91e403b70507 to your computer and use it in GitHub Desktop.
Rでネットワーク分析。指定Twitterユーザーのフォロー関係を可視化する。 ref: http://qiita.com/nezuq/items/75235f2139370cd8166c
library(ROAuth)
library(twitteR)
library(igraph)
#【認証処理】
# 設定情報を取得
twit.consumerKey <- "<あなたのTwitter-API key>"
twit.consumerSecret <- "<あなたのTwitter-API secret>"
# 証明書を取得
setwd(tempdir())
cacert.name <- "cacert.pem"
download.file(url = "http://curl.haxx.se/ca/cacert.pem", destfile = cacert.name)
# OAuth認証
twit.cred<-OAuthFactory$new(consumerKey = twit.consumerKey,
consumerSecret = twit.consumerSecret,
requestURL = "https://api.twitter.com/oauth/request_token",
accessURL = "https://api.twitter.com/oauth/access_token",
authURL = "https://api.twitter.com/oauth/authorize")
# ※コマンド実行後、Web画面での認証を求められる。
# Web画面に表示されるPIN番号をコンソールで入力する。
twit.cred$handshake(cainfo = cacert.name)
# Twitter認証
registerTwitterOAuth(twit.cred)
#【本処理】
# 対象ユーザーの情報を取得
user <- getUser("nezuq", cainfo = cacert.name)
# 対象ユーザーのフォロー対象者の情報を取得
friends <- user$getFriends(cainfo = cacert.name)
friends.df <- twListToDF(friends)
friends.n <- nrow(friends)
users <- c(user, friends)
users.df <- twListToDF(users)
users.n <- nrow(users.df)
# グラフデータを作成
g.data <- cbind(1,2:users.n)
g <- graph.edgelist(g.data)
# グラフを表示
V(g)$name <- users.df$screenName
plot(g, vertex.label = V(g)$name, vertex.size = 10, vertex.label.cex = 0.6, margin = -0.4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment