Zaman Serisi Grafiği Çizdirme - dygraphs Paketi


Merhaba R severler,

Bugün sizlerle “dygraphs” isimli paketi paylaşacağım. Bu paket tamamen veri görselleştirmek için kullanılıyor. Tabi ki diğerlerinden belli başlı farkları var. En büyük farkı ise grafik oluşturulurken javascriptin nimetlerinden faydalanmasıdır. Bir diğer özelliği ise zaman serisi için kullanılabilecek en uygun pakettir. Yapılandırılabilen eksen değerleri ve zaman serisi gösterimleri mevcuttur ve zaman serilerine ait değişkenlerin gösteriminde zengin bir etkileşim sunmaktadır. Paketle ilgili bu kadar açıklamanın yeterli olacağını düşünüyorum ve sizi sıkmadan hemen paketin kullanımına geçiyorum. İlk olarak paketi indiriyoruz ve kullanıma açıyoruz.

install.packages("dygraphs")

library(dygraphs)

Diğer paketlerde olduğu gibi bu paketin içerisinde de hazır veri setlerimiz mevcuttur. Bu pakette akciğer kanserinden ölen kadın (fdeaths) ve erkek (mdeaths) hastaların sayısını veren bir veri seti mevcuttur. Şimdi bir adet grafik çizdirelim.

lungDeaths <- cbind(ldeaths, mdeaths, fdeaths)

“cbind” komutu ile elimizde ayrı ayrı var olan veri setini bir araya getirdik ve bir değişkene attık.

dygraph(lungDeaths, main = "Akciğer Kanseri Ölümleri (UK)")

Yukarıda da görüldüğü gibi grafiği çizdirdiğimiz komut “dygraph” komutudur. İçerisinde birkaç argüman mevcut fakat şimdilik bize bu kadarı yeterlidir. Grafik çizdirildiğinde renklendirmeyi kendisi otomatik yapmaktadır fakat renkleri kendiniz seçmek istiyorsanız aşağıdaki gibi bir komut uygulamanız gereklidir.

dygraph(lungDeaths, main = "Deaths from Lung Disease (UK)") %>%

  dyOptions(colors = RColorBrewer::brewer.pal(3, "Set2"))

bu grafik bize sadece çizgi grafiği veriyor. Bunu biraz daha şekillendirmek istersek, mesela merdiven görünümü verelim;

dygraph(lungDeaths, main = "Deaths from Lung Disease (UK)") %>%

  dyOptions(stepPlot = TRUE)

Görüldüğü gibi bu paket içerisinde değişik grafikler elde ederken “%>%” işaretlerini kullanıp arkasından ayarlamaları yapıyoruz. Grafiği elbette en açıklanır şekilde çizdirmek hayati önem taşımaktadır. Eksen değerleri üzerinde değişiklik yapmak istersek;

dygraph(lungDeaths, main = "New Haven Temperatures") %>%    dyAxis("y", label = "Temp (F)")

komutları uygulanabilir. Buradan anlaşılacağı üzere x ya da y ekseni üzerinde değişiklik yapılacağında “dyAxis” ya da “dxAxis” komutları kullanılmaktadır.

Şimdiye kadar iki boyutlu grafiklerde çalıştık. Peki boyut sayısını 3 e çıkarmak istediğimizde yani ikinci y ekseni eklemek istersek nasıl olacağına bir bakalım.

Öncelikle bir veri seti oluşturalım;

temperature <- ts(frequency = 12, start = c(1980, 1),  data = c(7.0, 6.9, 9.5, 14.5, 18.2, 21.5,            25.2, 26.5, 23.3, 18.3, 13.9, 9.6))

rainfall <- ts(frequency = 12, start = c(1980, 1),  data = c(49.9, 71.5, 106.4, 129.2, 144.0, 176.0,           135.6, 148.5, 216.4, 194.1, 95.6, 54.4))

weather <- cbind(rainfall, temperature)

Buradaki “ts” komutu oluşturulan veriyi zaman serisine çevirme işini görmektedir. Görüldüğü gibi iki adet zaman serisi oluşturduk ve bunları tek bir veri seti haline getirdik. Şimdi ikili y ekseni olan bir grafik çizdirelim.

dygraph(weather) %>%  dySeries("rainfall", axis = 'y2')

Bu grafik paketiyle ilgili diğer bir konu periyodları kodlarla uğraşmadan nasıl belirleyebilieceğimizdir. Bunun için ilgili komutumuz “dyRoller” olacaktır.

dygraph(lungDeaths, main = "Important Discoveries") %>% dyRoller(rollPeriod = 5)

Son olarak grafik üzerinde belli tarih aralığını dinamik şekilde görebilmek için kullanılacak kodu göstereceğim. Bunun için yapılacak tek şey grafik komutunun sonuna “dyRangeSelector” eklemek olacaktır.

dygraph(nhtemp, main = "New Haven Temperatures") %>%   dyRangeSelector()

 

KAYNAK

https://rstudio.github.io/dygraphs/gallery-range-selector.html

 

Yazar Kimdir?

Sıtkı Cansu, 19 Ekim 1985 yilinda Konya-Beyşehir'de dogmustur.İlk, orta ve liseyi Beyşehir'de bitirmis olup Konya-Ereğli Selçuk MYO Bilgisayar programcılığı ve Mugla Sıtkı Koçman Üniversitesi İstatistik bölümünden mezun olmustur. Çesitli yerlerde web tasarımcı ve veri tabani yöneticisi olarak çalışan yazar, son üç senedir ingilizce öğretmenliği yapmaktadir. Şu anda yüksek lisansını tamamlamak üzere Mugla Üniversitesinde öğrenim görmektedir.