Visualizing Tweets During Election Weekend
Posted on Thursday, Dec 10, 2015 in programming • Tagged with data, tweets, twitter, elections, visualize, folium, python, matplotlib, pylab
On Sunday (Dec. 06) parliamentary elections were held in Venzuela. I took the opportunity to fetch some data from Twitter's public stream and use graphics to show what was happening in "social media" during that day. To achieve this I relied in the Python programming language.
The Data
I decided to monitor all geolocalized tweets with my home city (Caracas) as origin over a period of five days, two days before the elections, the election day, and two days after it.
To fetch the data, I used the Twython library since I've worked with it before. Therefore, it should be easy to setup a quick script to fetch the data and save it in a text file.
Once the API and OAUTH keys are correctly following Twython's documentation, the next step is to fetch the data originating in certain location, passing it as a parameter to the streaming API. Twitter uses a set of bounding boxes to track the location of a tweet and only geolocated Tweets falling within the requested bounding boxes will be included.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import json, os
from twython import TwythonStreamer
caracas_location = "-67.017225,10.419554,-66.778716,10.52006"
class MyStreamer(TwythonStreamer):
def on_success(self, data):
if data['coordinates'] is not None:
with open('tweets.txt', 'a') as f:
f.write(json.dumps(data))
f.write('\n')
def on_error(self, status_code, data):
with open('errors.txt', 'a') as f:
f.write('error: {0}: {1}'.format(status_code, data))
stream = MyStreamer(os.environ['APP_KEY'], os.environ['APP_SECRET'],
os.environ['OAUTH_TOKEN'], os.environ['OAUTH_TOKEN_SECRET'])
stream.statuses.filter(locations=caracas_location)
|
Since I just wanted to fetch geolocalized tweets, I checked for the existance of the coordinates entity in the …
Continue reading