#Brexit – Twitter analyse in R 2: populairste tweets visualiseren en een tijdlijn maken

#Brexit – Twitter analyse in R 2: populairste tweets visualiseren en een tijdlijn maken

In mijn vorige post liet ik zien hoe je een verbinding tussen R en Twitter opzet en hoe je tweets kunt binnenhalen. In deze post wil ik de Twitter-data gaan verkennen door wat simpele visualisaties maken, zoals een visualisatie van de populairste tweets en een tijdlijn waarop te zien is wanneer er getweet wordt. Dit is een goede eerste stap om een algemene indruk te krijgen van de Twitter-data die je voor je hebt.

Ik maak voor deze post gebruik van mijn dataset met tweets over Brexit die ik in mijn vorige post heb binnengehaald: het gaat om 29 379 Nederlandstalige tweets met het woord ‘Brexit’ erin in de periode van 9 januari tot 19 januari 2019. De packages die ik voor deze post gebruik, zijn ggplot2, dplyr, lubridate en stringr. Dus:

library(ggplot2)
library(dplyr)
library(stringr)
library(lubridate) 

Populairste tweets
Om een eerste indruk te krijgen van wat er speelt binnen een bepaald onderwerp op Twitter, is het een goed idee om te kijken naar wat de populairste tweets zijn. Een indicatie hiervan is of ze als favorite worden aangemerkt door andere gebruikers, of dat de tweet veel geretweet is. Zo zien ook de volgers van deze gebruikers de tweets en zal het bereik dus het grootst zijn. De vijf tweets met de meeste favorites kun je makkelijk ophalen:

# top5 favorieten 
topf <- totalbrexit %>%
top_n(5, favoriteCount) %>% 
arrange(desc(favoriteCount)) 

Hieronder heb ik de populairste tweets ook gevisualiseerd. Hierbij zorgt de reorder functie ervoor dat de tekst in de volgorde van het aantal favorieten komt en door de str_wrap functie te gebruiken, vermijd je dat de tekst de halve visualisatie in beslag neemt.

#visualisatie favorieten
ggplot(topf, aes(reorder(stringr::str_wrap(text, 30), favoriteCount), favoriteCount)) + 
	geom_col(fill = "#bcbbea") + 
	xlab(NULL) + ylab("Favorieten") + 
	coord_flip()

De favoriete tweets komen vaak overeen met de tweets met het grootste aantal retweets, maar dat hoeft niet altijd zo te zijn. Dus is het interessant om ook hier een top vijf van te maken en op dezelfde manier als hierboven te plotten.

We zien hier dat de tweets met de meeste favorites en de meeste retweets grotendeels met elkaar overeenkomen. De populairste tweet is dan ook duidelijk: “Amerika ligt plat, Groot-Brittannië is een puinhoop. Misschien is stemmen op leugenachtige populisten toch geen goed idee. #Shutdown #Brexit”. Aan de andere populairste tweets te zien, deelt niet iedereen die mening.

Wanneer wordt er getweet?
Om een idee te krijgen van de belangrijkste momenten binnen de Brexit-discussie op Twitter, is het handig om een visualisatie te maken van wanneer er getweet werd. Daarvoor maak ik eerst een dataframe ‘tweets_by_time’ met hoeveel er op elke dag getweet is. Hiervoor gebruik ik eerst een filter om 9 en 19 januari eruit te filteren want deze dagen zijn niet compleet in mijn dataset, en groepeer ik op dag om vervolgens het aantal records te tellen.

tweets_by_time <- totalbrexit %>%
filter(created > as.Date("2019-01-10") & 
	created < as.Date("2019-01-19")) %>%
mutate(date = floor_date(created, unit = "1 day")) %>%
group_by(date) %>%
mutate(aantaltweets = n()) %>%
ungroup()

Vervolgens laat een plot van deze data goed zien wanneer er veel getweet werd.

ggplot(tweets_by_time, aes(date, aantaltweets)) + 
	geom_line(size = 1.5) + 
	xlab("Datum") + 
	ylab("Aantal tweets")

Er is een duidelijk hoogtepunt op 15 januari. Niet zo gek, want op die dag was de stemming in het Britse Lagerhuis over het Brexit-voorstel van May. Het voorstel werd met een vrij dramatische meerderheid afgewezen, wat een no-deal Brexit dichterbij bracht. Dit besluit heeft duidelijk indruk gemaakt op Twitterend Nederland, zo blijkt uit deze lijnplot. Op 15 en 16 januari naderde het aantal Brexit-tweets bijna de 10 000.

De stemming over Brexit op 15 januari, vond plaats in de avond. Aanvullend op bovenstaande lijnplot is het dan ook interessant om ook het aantal tweets per uur te bekijken, om te zien of het aantal ‘s avonds inderdaad hoger lag. Hiervoor gebruik ik dezelfde code als bovenstaand, met als enige aanpassing dat je de unit van de floor_date instelt op “1 hour”.

Goed om te zien dat Twitter ook wel eens slaapt. We zien verder dat in de uren voorafgaand aan de stemming op 15 januari er niet veel meer aandacht voor Brexit was dan op andere dagen. Aan het eind van de dag schoot het aantal Brexit-tweets echter enorm omhoog. De volgende dag was er ook nog veel aandacht voor Brexit op Twitter, maar meer gelijkmatig verdeeld over de dag dan de dag ervoor.

Ik hoop dat deze post nuttig was! Als je vragen, opmerkingen of tips voor me hebt, mail me op gibbon@datagibbon.nl. In mijn volgende post wil ik gaan verkennen of Nederlandse twitteraars zich positief of negatief uitlaten over Brexit op Twitter.