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.