Videre nørd i R

Nå. Jeg har høstet data fra Twitter ved hjælp af Python.
Og jeg har visualiseret ved hjælp af Googles visualiserings API. Lækkert.
Jeg har endda fundet ud af kombinere det basale forespørgsels sprog i samme API med Highcharts, så jeg kan lave
live-visualiseringer. Der er lidt der skal pusles med endnu før jeg vil vise det frem. Og det giver også mest
mening i et eksempel hvor der opsamles live-data.

Men kan jeg også visualisere i R? Det er jo også et nyttigt værktøj, som jeg skal lære at kende.

Vi starter med at exportere data i CSV-formatet fra Google spreadsheet.
Dernæst importerer jeg det i R:

twitterdata <- read.csv(file="C:\\Users\\mrk718\\Desktop\\twitterdata.csv",head=FALSE, sep = ",")

Der er dobbelt backslashs fordi backslash bruges til at escape tegn med i R. Derfor skal backslash escapes med et
backslash. \\.
Jeg har ikke kolonneoverskrifter i regnearket. Det skal der nok være fremadrettet, da det gør det lettere at opstarte
en ny dataindsamling. Men derfor: head=FALSE. Og det er komma-separeret, så sep=",".

Så er det inde. Der kan let laves et plot af punkterne.

plot(twitterdata$V1,twitterdata$V2)

Kedeligt plot. primært fordi datoerne ikke er der, så de står som et eller andet i 12.

Efter en hurtig googling af hvordan man konverterer sådan et timestamp til en dato:

plot(as.POSIXct(twitterdata$V1, origin = "1970-01-01" ), twitterdata$V2)

Nu står der mindre, men stadig mærkelig datoer i X-aksen. 48138, 48140 osv.

Men hov! Mon ikke as.POSIXct tager udgangspunkt i UNIX-tidsstempler?
Javascript bruger millisekunder, UNIX nøjes med sekunder.

plot(as.POSIXct(twitterdata$V1/1000, origin = "1970-01-01" ), twitterdata$V2)

Meget bedre. Nu står der godt nok "to" og "fr" på X-aksen. Det passer, men er ikke helt optimalt. I det mindste
har R her styr på at vi er i Danmark, og finder selv ud af at torsdag skal forkortes til to.

Navngivningen af x-aksen er heller ikke helt optimal. Der står

as.POSIXct(twitterdata$V1/1000, origin = "1970-01-01" 

Y-aksen er ikke meget bedre.
plot(as.POSIXct(twitterdata$V1/1000, origin = "1970-01-01" ), twitterdata$V2, xlab = "Tid", ylab = "Antal")

Hep, xlab="hvad jeg vil kalde min x-akse"

Så ylab = "Antal"

type = "l", og jeg har et line-plot. Ikke de pæne splines fra mine tidligere visualiseringer, men vi nærmer os.

Så tilføjer vi format="%d-%m %H:%M:%S" til POSIXct delen:

plot(as.Date(as.POSIXct(twitterdata$V1/1000, origin = "1970-01-01", format="%d-%m %H:%M:%S" )), twitterdata$V2, xlab = "Tid", ylab = "Antal")

Og så crasher det... Jeg får at vide at "need finite 'xlim' values". der er nok noget der har vanskeligt ved at
håndtere max og min af datoer...

Hm. Jeg kunne sagtens får "to" og "fr" på akserne. Men så snart jeg begynder at formattere det - så går det galt. hvorfor mon det.

Hvem kvidrer om #dffuvinter16?


De 10 flittigste twitterer på #dffuvinter16:

Refresh siden for opdatering.

Visualising Twitter activity – a work i progress part X – finally, graphs!



It took a long time. I’ve actually been ready for a couple of days, but theres a cold on its way, and I gave a presentation on the history of e-bookreaders earlier today. But now I’m ready!

Wordclouds will have to wait – I’m simply not a good enough javascript programmer. And the live-updating tweetcount  have the same problem. But besides that:

The 10 most prolific tweeters:

The number of tweets as a function of time:

The number of tweets pr language (ISO-codes, sorry)

The number of tweets pr location (ISO-codes, sorry)

Note – more than one chart on the same page, might interfere. Function names has to be different.

Whats next? There were a lot of things to finetune in some of the previous posts. I would really like to make a wordcloud. But right now: Terminate the python script. Clean the spreadsheet. Add the right hashtag to the script. Rerun. Wait.