Tuesday, August 20, 2013

Day 51

Täna sai veidi eilse lugemisega jätkatud ja siis andmetega mängitud. R-i sees on graafikute joonistamiseks loomulikust olemas funktsioon  plot , aga juurde on ehitatud pakett nimega  ggplot2 , mille kohta on isegi raamatuid kirjutatud.

Igatahes paari tunni nikerdamise peale, millest pool oli andmete ehitamine ja teine pool graafikuga mängimine tuli selline tulemus:


Selle genereerimiseks on vaja esmalt andmeid ja siis järgnevat koodi:
ggplot(a, aes(dow, m)) + 
  geom_errorbar(limits, width=0.25) + 
  geom_line(aes(a$dow, a$m)) + 
  labs(x="Day of week", y="Average sentiment score", title="Sentiment on test taking days") +
  scale_x_continuous(limits=c(0.5,7.5), breaks=c(1:7), labels=a$dname) +
  scale_y_continuous(limits=c(-0.2,0.7)) +
  theme(
    text = element_text(size=20), 
    plot.margin=unit(c(40,40,40,40),"points"), 
    plot.title = element_text(vjust=3), 
    axis.title.y = element_text(vjust=-0.2), 
    axis.title.x = element_text(vjust=-0.6))

Tundub jube pikk ja keeruline, aga tegelikult on väga hea ja lihtne. Esmalt tehakse plot andmemassiivi a veergudest dow ja m. Ja siis hakatakse seda muutma, lisades error barid, keskmisi ühendava joone, pealkirjad, nihutades skaalade otspunkte, muutes päevade numbrid nende nimedeks ja nihutades/muutes pealkirju. Kogulugu. Kui andmetes a midagi ära muuta, siis täpselt sama koodilõiku käima pannes saab täpselt samamoodi kujundatud graafiku. Kõige selle jaoks on korralik dokumentatsioon ja muidugi on abiks ka google.

Aga nüüd liigun tähistama tänast päeva koos teiste siikandis elavate kaasmaalastega.

PS. Näites toodud andmed data.frame-s a:
dow         m     min    max        sd dname
1   1 0.2724508 -0.4868 1.6863 0.2880627   Mon
2   2 0.2625737 -0.3471 1.4592 0.2818810   Tue
3   3 0.2568868 -0.4868 1.4825 0.2966397   Wed
4   4 0.2695618 -0.5030 1.6863 0.2942292   Thu
5   5 0.3063566 -0.4380 1.0142 0.2747129   Fri
6   6 0.2563224 -0.4868 1.1947 0.2969103   Sat
7   7 0.2753576 -0.4380 1.6863 0.2983870   Sun