R dysponuje bardzo duøymi moøliwoúciami w zakresie graficznej prezentacji uzyskanych wyników. Aby jednak w pe ni korzystaê z jego moøliwoúci zapoznamy sií wpierw z systemem prezentacji grafiki. Bazowy system graficzny dzieli kaødπ stroní na trzy g ówne obszary: marginesy zewnítrzne (ang. outer margins), obszar rysunku (ang. figure region) oraz obszar kreúlenia (ang. plot region). Obszar jaki uzyskujemy po odrzuceniu marginesów zewnítrznych nazywany jest obszarem wewnítrznym (ang. inner region).
Podzia strony graficznej
Obszar na zewnπtrz obszaru kreúlenia, ale wewnπtrz obszaru rysunku nazywa sií marginesami rysunku (ang. figure margins). WiÍkszoúÊ funkcji rysujπcych wykorzystuje obszar kreúlenia do rysowania symboli graficznych oraz linii, natomiast osie oraz etykiety nanoszone sπ na marginesach rysunku lub marginesach zewnítrznych. Rozmiar oraz po oøenie marginesów kontrolowane sπ za pomocπ funkcji par. Polecenia graficzne w R moøna podzieliê na trzy typy: funkcje wysokiego poziomu, funkcje niskiego poziomu oraz funkcje parametrów graficznych.
Funkcje wysokiego poziomu Tworzπ nowy wykres: plot wykres punktowy, najpopularniejsza funkcja graficzna, przeciπøona praktycznie dla kaødego obiektu, curve wykresfunkcji.
Funkcje wysokiego poziomu Kaøda funkcja wysokiego poziomu moøe zostaê wywo ana z parametrami. add=false jeøelitrue,nak adawykresnajuøistniejπcy, axes=true jeøeli FALSE, nie rysuje osi i pude ka naoko o, type= p okreúla rodzaj wykresu. G ówne typy to: p punkty, l linie bez punktów, b punkty po πczone za pomocπ linii, o linie oraz punkty na nich leøπce, h linie pionowe, s oraz S linie πczπ punkty (najpierw w poziomie potem w pionie lub na odwrót), n pusty wykres, xlim=, ylim= okreúla poczπtek i koniec osi, xlab=, ylab= tytu y osi, main= tytu wykresu, sub= podtytu (mniejsza czcionka).
Uøycie parametru type w procedurach graficznych
Funkcje niskiego poziomu Funkcje takie dodajπ pewne elementy do juø istniejπcego wykresu: abline(a, b) rysuje prostπ y = ax + b, arrows(x0, y0, x1, y1) dodaje strza kí, legend(x, y, legend = legenda ) dodaje legendí, lines(x, y) rysuje linií, points(x, y) rysuje punkty, poly(x, y) rysuje wielokπt, rect(x0, y0, x1, y1) rysuje prostokπt, text(x, y, label = tekst ) dodaje tekst wpunkcie(x,y). Moøemy dodawaê opisy matematyczne (i nie tylko), których sk adnia opiera sií na wewnítrznym systemie R zbliøonym do TEXa, title( tytu ) dodaje tytu.
Funkcje parametrów graficznych Zmieniajπ oraz poprawiajπ wyglπd okna graficznego. WiÍkszoúÊ ustawieò jest kontrolowana poprzez funkcjí par, która wywo ana bez parametrów wyúwietla bieøπce ustawienia okna. Jednπ z najwaøniejszych opcji oferowanych przez par jest podzia okna graficznego. Uzyskujemy to za pomocπ opcji mfrow oraz mfcol. W tym pierwszym przypadku obrazki rysowane sπ po wierszach, w drugim po kolumnach. Bardziej skomplikowane uk ady mogπ byê uzyskane za pomocπ poleceò split.screen oraz layout.
Przyk adowe uk ady rysunków stworzone za pomocπ funkcji layout
Podstawowe parametry graficzne (1) ask Ustawienie na TRUE powoduje, øe przed rozpoczíciem rysowania naleøy nacisnπê dowolny klawisz. adj Wyrównanie tekstu, 0 do lewej, 0.5 do úrodka, 1 do prawej. bg Kolor t a bty Kontroluje rodzaj obramowania rysunku (w po πczeniu z funkcjπ box). Dopuszczalne wartoúci to: n, o, l, 7, c, u, ], gdzie n oznacza brak obramowania, natomiast pozosta e parametry okreúlajπ typy obramowania zgodne z wyglπdem znaków, np. : u wszystkie linie poza górnπ. cex WielkoúÊ powiíkszenia symboli i tekstu. Moøna równieø uøywaê: cex.axis, cex.lab, cex.main, cex.sub. col Kolor punktów, linii, tekstu oraz wype nionych obrazków. Za pomocπ dodatkowych poleceò (col.axis, col.lab, col.main, col.sub) uzyskujemy kolor osi, etykiet oraz tytu u i podtytu u. font Typ czcionki dla tekstu: 1 normalna, 2 pogrubiona, 3 pochylona, 4 pogrubiona i pochylona. Dla osi, etykiet oraz tytu u ipodtytu uzmieniamyczcionkízapomocπfont.axis, font.lab oraz font.main i font.sub odpowiednio.
Podstawowe parametry graficzne (2) lty Okreúla typ linii, 0 brak linii ( blank ), 1 ciπg a ( solid ), 2 przerywana ( dashed ), 3 kropkowana ( dotted ), 4 kropka-kreska ( dotdash ), 5 d uga kreska ( longdash ), 6 podwójna kreska ( twodash ). Poza tym istnieje moøliwoúê okreúlenia dowolnej linii, w taki sposób, øe po kolei w liczbach szesnastkowych podajemy ile jednostek ma byê wype nionych liniπ, a ile pustych (maksymalnie osiem znaków, tylko parzyste d ugoúci), np:. lty = 13 oznaczalinií kropkowanπ. lwd GruboúÊ linii new Ustawienie na TRUE powoduje, øe nowy wykres rysowany jest na istniejπcym wykresie bez jego czyszczenia. pch Symbol uøywany na obrazkach, moøna uøywaê domyúlnych symboli okreúlonych liczbami od 0 do 25. Symbole 21 25 róøniπ sií od wczeúniejszych jedynie typem wype nienia. Dodatkowo istnieje moøliwoúê uøycia znaków o kodach ASCII od 32 do 255 z bieøπcej czcionki (wszystkie symbole dostípne do uøycia moøna wyúwietliê poleceniem symboltable zpakietufbasics). ps WielkoúÊ czcionki (w punktach) srt Kπt obrotu tekstu (w stopniach)
Predefiniowane typy linii (6 pierwszych) oraz przyk adowe linie uøytkownika (7. i 8.)
Symbole uøywane na rysunkach
1 1 5 5 0 0 5 par() karta pomocy par() Graphical Parameters Visual cheat sheet for some plot parameters in R. See?par for more information. Symbol Styles Axes Text and Labels pch Point Types lty Line Types 1 2 3 4 5 6 lwd Line Width.1 mfrow Multiple Figures by Row 2,3 1 2 3 4 5 6 Also available mfcol for multiple figures by column you can also use any character Figures Arrangement.25.5 1 3 6 lab Tick Placement 10,10 1,10 10 10 1 5 10 10 10,1 2,2 10 10 5 10 1 5 10 tck Tick Length -0.1 0.l 1 bty Box Type 'o' 'l' '7' 'c' 'u' ']' 0 10 family, font Typeface and Font Style family: mono font: 1 family: mono font: 2 family: mono font: 3 family: mono font: 4 family: serif font: 1 family: serif font: 2 family: serif font: 3 family: serif font: 4 Also available: font.main (main title), font.lab (axis labels), font.sub (subtitle) las Label Orientation 0 Parallel to axes 0 10 text 10 text 0 0 ann Plot Annotation y-values TRUE Some Title x-values srt String Rotation 1 Horizontal text 10 FALSE text 2 Perpendicular to axes 10 0 45 90 135 0 10 family: sans font: 1 family: sans font: 2 family: sans font: 3 family: sans font: 4 0 10 3 Vertical Based on Flowing Data s cheat sheet 10 lheight Line Height 1 The quick brown fox jumps over the lazy dog and runs away with all the food 1.5 The quick brown fox jumps over the lazy dog and runs away with all the food
Kolory Do kolorów moøna sií odwo ywaê za pomocπ nazwy lub korzystajπc z modelu RGB. Wszystkie 657 nazw kolorów moøemy wyúwietliê za pomocπ funkcji colors(). Natomiast podajπc kolor w modelu RGB podajemy go w nastípujπcej postaci: #RRGGBB, gdzie RR (czerwony), GG (zielony), BB (niebieski) to natíøenie kaødej ze sk adowych barwnych z przedzia u (0, 255) zapisane w postaci liczby szesnastkowej. Istnieje równieø moøliwoúê skorzystania z jednej z palet wbudowanych: rainbow, heat.colors, terrain.colors, topo.colors, cm.colors.
Kolory
Kolory
Interakcja z obrazkiem Po stworzeniu wykresu moøemy w niego równieø, w ograniczony sposób, ingerowaê za pomocπ myszki. Najprostszπ tego typu funkcjπ jest: locator(n = 512, type = n ) gdzie n oznacza iloúê punktów, a type ma analogiczne znaczenie do parametrów funkcji wysokiego poziomu. Drugim uøytecznym poleceniem jest identify(x, y, labels) które pozwala wskazywaê punkty na wykresie. Na wykresie dodawana jest etykieta ze zbioru labels (lub numer punktu w zbiorze danych jeúli nie podano wektora etykiet), dla punktu najbliøszego wskazania.
Interakcja z obrazkiem Po stworzeniu wykresu moøemy w niego równieø, w ograniczony sposób, ingerowaê za pomocπ myszki. Najprostszπ tego typu funkcjπ jest: locator(n = 512, type = n ) gdzie n oznacza iloúê punktów, a type ma analogiczne znaczenie do parametrów funkcji wysokiego poziomu. Drugim uøytecznym poleceniem jest identify(x, y, labels) które pozwala wskazywaê punkty na wykresie. Na wykresie dodawana jest etykieta ze zbioru labels (lub numer punktu w zbiorze danych jeúli nie podano wektora etykiet), dla punktu najbliøszego wskazania.
Podstawowe wykresy
Histogram Histogram zbór przylegajπcych prostokπtów, których podstawy, równe rozpiítoúci przedzia ów klasowych znajdujπ sií na osi odciítych, a wysokoúci sπ liczebnoúciami przedzia ów. Tworzymy go za pomocπ polecenia: hist(dane, breaks, probability = F), gdzie breaks moøe byê liczbπ okreúlajπcπ liczbí s upków (jest to tylko sugestia) lub wektorem zawierajπcym punkty, gdzie majπ byê s upki; probability zamiast liczebnoúci rysowane sπ czístoúci.
Histogram CzÍsto do tak utworzonego histogramu dodaje sií na dole wartoúci obserwacji za pomocπ polecenia rug(jitter(dane)), co pozwala zaobserwowaê gdzie dok adnie sπ obserwacje w klasach. Polecenie jitter dodaje losowy szum do danych, co powoduje, øe jeúli mamy kilka takich samych wartoúci, to nie sπ one przedstawione jako pojedynczy punkt, ale kilka punktów blisko siebie.
Histogram Niestety histogram nie nadaje sií do analizy zmiennych dyskretnych. W takiej sytuacji moøna wykorzystaê wykres typu zawieszony korzeò (ang. hanging rootogram). Jest to diagram, na którym na osi pionowej znajdujπ sií pierwiastki z zaobserwowanych czístoúci (aby nieco sp aszczyê wykres i uwypukliê równieø ma e liczebnoúci). Dodatkowo rysowana jest teoretyczna funkcja gístoúci dopasowywanego rozk adu. Jednakøe s upki sπ tak przesuniíte aby dotyka y dopasowywanej krzywej. Wykres taki zosta zaimplementowany w pakiecie vcd w funkcji rootogram.
Wykres pude kowy (1) Wykres pude kowy inaczej ramkowy (ang. boxplot, box-and-whisker plot). Tworzymy go odk adajπc na pionowej osi wartoúci niektórych parametrów rozk adu. Nad osiπ umieszczony jest prostokπt (pude ko), którego dolny bok jest wyznaczony przez pierwszy kwartyl, górny bok zaú przez trzeci kwartyl. WysokoúÊ pude ka odpowiada wartoúci rozstípu Êwiartkowego. Wewnπtrz prostokπta znajduje sií pozioma linia, okreúlajπca wartoúê mediany.
Wykres pude kowy (1) Rysunek pude ka uzupe niamy od góry i od do u odcinkami (wπsy). Dolny koniec dolnego odcinka wyznacza najmniejszπ wartoúê w zbiorze, natomiast górny koniec górnego odcinka, to wartoúê najwiíksza. KoÒcowe wartoúci wπsów muszπ spe niaê dodatkowy warunek, a mianowicie dolny koniec nie moøe byê mniejszy niø Q 1 1,5 (Q 3 Q 1 ), a górny wiíkszy niø Q 3 + 1,5 (Q 3 Q 1 ). Jeúli wystípujπ obserwacje spoza tego przedzia u, to nanoszone sπ na wykres indywidualnie (sπ to tzw. obserwacje odstajπce (ang. outlier)). (dane, formu a).
Wykres pude kowy (2)
Wykres paskowy (1) Dla prób, w których istniejπ powtarzajπce sií wartoúci, uøywa sií równieø wykresu paskowego (ang. stripchart). Na wykresie takim rysowane sπ wszystkie obserwacje w jednej poziomej linii, przy czym mamy moøliwoúê wyboru metody postípowania w przypadku wartoúci powtarzajπcych sií. stripchart(dane, method). Parametr method okreúla sposób postípowania w przypadku obserwacji powtarzajπcych sií i moøe przyjmowaê wartoúê: stack, overplot oraz jitter.
Wykres paskowy (2)
Wykres skrzypcowy Wykres skrzypcowy (ang. violin plot). Moøna go traktowaê jako wyg adzonπ wersjí wykresu pude kowego. Przydatny jest zw aszcza w przypadku danych wielomodalnych. Jest to w zasadzie wykres pude kowy, gdzie szerokoúê skrzypiec w punkcie x odpowiada natíøeniu obserwacji o wartoúci cechy zbliøonej do x (estymator jπdrowy gístoúci). Funkcja vioplot znajduje sií w pakiecie o tej samej nazwie.
Porównanie wykresu skrzypcowego i pude kowego
Wykres typu odyga liúcie (1) Wykres typu odyga liúcie (ang. stem and leaf plot, stemplot). Jego celem jest po πczenie dok adnoúci polegajπcej na zachowaniu oryginalnych wartoúci poszczególnych obserwacji z zaletami histogramu. Jeúli np. bídziemy rozpatrywaê dane dotyczπce wieku badanych, to wszystkie liczby moøna zapisaê jako dziesiπtki i jednostki (poza szczególnymi przypadkami osób ponad 100-letnich). Po prawej stronie od linii obrazujπcej dziesiπtki bídziemy zapisywali jednostki odpowiadajπce poszczególnym obserwacjom. W taki sposób otrzymujemy obrócony o 90 o histogram. Dodatkowo jednak moøemy z niego odczytaê wartoúci poszczególnych obserwacji. stem(dane)
Wykres typu odyga liúcie (2) 3 0 457 21 1 001233445555666677789 18 2 001223334556677788 33 3 000111223344444555555566667899999 15 4 124555666777889 11 5 00344578999 7 6 1112235 Liczby po lewej stronie odygi informujπ o liczebnoúci klas. Cyfry ujíte w oznaczajπ liczbí dziesiπtek, natomiast cyfry po prawej stronie odygi to cyfry jednoúci. Zapisane w ten sposób liczby odczytujemy tak, øe pierwsza cyfra uwidoczniona jest na odydze, druga cyfra zaú tworzy liúê (np. 4 5 odczytujemyjakocztery dziesiπtki i 5 jednoúci, czyli 45). Z diagramu tego moøemy odczytaê np., øe by y 3 osoby w wieku poniøej 10 lat i mia y one odpowiednio: 4, 5 oraz 7 lat; osób w wieku 10-19 lat by o 21 i liczy y sobie one: 10, 10, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 19 lat itd.
Wykres s upkowy Wykres s upkowy (kolumnowy) (ang. bar plot) uøywany raczej w przypadku danych jakoúciowych, przedstawia kolejne kategorie danych za pomocπ s upków odpowiedniej wysokoúci. Moøe byê poziomy lub pionowy (czasami wystípuje rozróønienie, pionowy nazywany jest wtedy kolumnowym, a poziomy s upkowym). Czasami uøywa sií równieø tzw. wykresu Pareto, gdzie s upki rysowane sπ od najwyøszego do najniøszego. Czasami dobrym rozwiπzaniem moøe byê zastπpienie wykresu s upkowego przez wykres kropkowy (ang. dotchart). barplot(dane) #Wykres s upkowy barplot(sort(dane, decreasing = T)) #Wykres Pareto dotchart(dane) #Wykres kropkowy
Wykres ko owy Wykres ko owy (ang. pie chart). Wartoúci liczbowe sπ przedstawiane za pomocπ wycinków ko a. Wykres ko owy wystípuje w rozmaitych wariantach graficznych. Typowy jest wykres p aski, ale moøna teø utworzyê trójwymiarowy tort lub ser. pie(dane) Funkcja rysujπca trójwymiarowy wykres ko owy (serowy) znajduje sií w pakiecie plotrix. pie3d(dane, radius = promieò, explode = odstípy, labels = etykiety)
Wykres kwadratów Wykres kwadratów (ang. squareplot). W pakiecie UsingR znajduje sií bardzo ciekawy wykres do prezentacji liczebnoúci kategorii danych. Powsta on na bazie podobnych wykresów prezentowanych w gazecie New York Times. W przeciwieòstwie do wykresów s upkowych oraz ko owych widzimy dok adnie liczebnoúê kaødej kategorii. squareplot(dane, kolory)