Created
May 10, 2014 08:19
-
-
Save nezuQ/d18afbaa91e403b70507 to your computer and use it in GitHub Desktop.
Rでネットワーク分析。指定Twitterユーザーのフォロー関係を可視化する。 ref: http://qiita.com/nezuq/items/75235f2139370cd8166c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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