Importing and visualizing Twitter networks

Analyzing Social Media Data in Python

Alex Hanna

Computational Social Scientist

Edge Lists

         BethMohn           ChristianMohn
           ASilNY         LarrySchweikart
         mattg444              WhiteHouse
    hlthiskrieger                aravosis
          Herky86          SenJeffMerkley
  PatrickParsons9              TwitterGov
    New_Narrative                 CFR_org
           dddlor               roywoodjr
      scrivener50          michaelscherer
  ChiefsHeadCoach           johnpavlovitz
Analyzing Social Media Data in Python

Importing a retweet network

import networkx as nx

## ... flatten and convert JSON
G_rt = nx.from_pandas_edgelist( tweets, source = 'user-screen_name', target = 'retweeted_status-user-screen_name', create_using = nx.DiGraph())
Analyzing Social Media Data in Python

Importing a quoted network

import networkx as nx

## ... flatten and convert JSON

G_quote = nx.from_pandas_edgelist( tweets, source = 'user-screen_name', target = 'quoted_status-user-screen_name', create_using = nx.DiGraph())
Analyzing Social Media Data in Python

Importing a reply network

import networkx as nx

## ... flatten and convert JSON

G_reply = nx.from_pandas_edgelist(
                           tweets,
                           source = 'user-screen_name', 
                           target = 'in_reply_to_screen_name'
                           create_using = nx.DiGraph())
Analyzing Social Media Data in Python

Visualization

nx.draw_networkx(T)
plt.axis('off')

Directed graph

Analyzing Social Media Data in Python

Visualization options

sizes = 
   [x[1]*100 for x in T.degree()]
nx.draw_networkx(T, 
            node_size = sizes, 
            with_labels = False, 
            alpha = 0.6,
            width = 0.3)
plt.axis('off')

Directed graph modified

Analyzing Social Media Data in Python

Circular layout

circle_pos =
    nx.circular_layout(T)
nx.draw_networkx(T,
            pos = circle_pos,
            node_size = sizes, 
            with_labels = False, 
            alpha = 0.6,
            width = 0.3)
plt.axis('off')

Directed graph circular layout

Analyzing Social Media Data in Python

Let's practice!

Analyzing Social Media Data in Python

Preparing Video For Download...