Bu tutorialda sizlere calendR kütüphanesi ile R Studio’da nasıl takvim hazırlanacağını ve bu takvimlere ne gibi süslemeler yapılabileceğini anlatacağım.

İlk olarak paketi CRAN’dan indiriyoruz ve sonra uygun komut ile çağırıyoruz.

## Warning: package 'calendR' was built under R version 3.6.3
## ~~ Package calendR
## Visit https://r-coder.com/ for R tutorials ~~

Takvim Çizdirmek

calendR paketi ile takvim çizdirmek için yine aynı isimli fonksiyonu kullanıyoruz. Bu tüm takvim çizimleri için ana kullanılan fonksiyon olacak.

Takvimin dilini değiştirmek istiyorsan Sys.setlocale("LC_ALL", "English") komutunu kullanabilirsin.

Hafta başlangıcı değişimi

Türkiye’de takvimler yurt dışının aksine Pazartesi ile başlar. Bunun için yine calendR fonksiyonu içindeki start argümanını kullanacağız. Başlangıç olarak seçeceğimiz günün İngilizce karşlığının baş harfini yazıyoruz.

Renklendirme

Bir yıldaki belirli günleri renklendirmek istiyorsak eğer yine calendR fonksiyonu içindeki special.days argümanını kullanacağız.

Bir yılda 365 gün olduğunu varsayarak, renklendirmek istediğimiz güne karşılık gelen değeri yazacağız. örneğin; 28 Şubat yılın 59. günüdür.

28 Şubat an itibarı ile renkli, ancak rengi daha görünür bir renkle değiştirmek istiyoruz. Bunun için yine calendR() fonksiyonu içindeki special.col ve low.col argümanlarını kullanacağız.

Bu argümanlar içerisinden special.col bizim renklendirmek istediğimiz günün rengini simgelerken, low.col ise renklendirmek istediğimiz gün harici diğer günlerin renklerini simgeliyor.

Daha fazla gün renkledirmek istiyorsak eğer, bunun için special.days argümanına c komutu yardımı ile bir vektör atayacağız.

Örneğin, milli bayramları renklendirmek istiyoruz.

Eğer sadece hafta sonlarını renklendirmek istiyorsak special.days argümanına karşlık weekend objesini karşılık getiriyoruz.

Takviminize özel günlerin notlarını almak istiyorsanız, tatil, doğum günü evlilik yıldönümü vs. Bu günleri özel olarak renklendirip “legend” olarak takviminize ekleyebilirsiniz.

Öncelikle legend argümanına karşılık gelecek uzunluğu 365 olacak bir vektör objesi yaratıyoruz.

Şimdi yılı yine 365 gün olarak düşünerek özel günlerimize karşılık gelen günlerin indeks değerlerine işaretlemek istediğimiz özel gün isimlerini yazacağız.

Peki hem haftasonu renkli hem de özel günler renkli takvimi nasıl yapabiliriz? Bunun için ufak bir vektör oluşturmamız gerekiyor.

Bu vektörün uzunluğu 365 olmalı ve hafta sonuna karşılık gele gün indexleri weekend olmalı. Diğer notlarımıza karşılık gelen indexler de daha sonra buraya eklenmeli.

2021 yılı takvimine baktığımızda ilk haftasonu günleri 2. ve 3. günlere geliyor. Daha sonrasında 7şer 7şer artıyor.

## [1] NA        "Weekend" "Weekend" NA        NA        NA

Haftasonlarını ekledikten sonra şimdi diğer etkinliklerimizi de ekleyebiliriz.

calendR komutu takvimi otomatik olarak landscape (manzara) formatında oluşturuyor. Ancak takviminizi “portrait” (portre) olarak da bastırabilrsiniz.

Aylık Takvim Çizdirmek

Eğer sadece bir ayın takvimini çizdirmek istiyorsak eğer yine calendR komutu içinde month argümanını kullanacağız Bu argümana takvimini çizdirmek istediğimiz ayın matematiksel numarasını yazmamız yeterli. (1= Ocak, 2= Şubat gibi)

Aylık bir takvimde de renklendirme, özel gün ekleme gibi süsleme işlemleri tıpkı yıllık takvimde olduğu gibi. Örneğin,

Takviminizi farklı günler için farklı renklerle boyamak isterseniz de yine yıllık takvimde yapılan yolu tercih edebilirsiniz.

Aylık takviminize notlar almak istiyorsanız text argümanı kullanarak bunu gerçekleştirebilirsiniz. Not alma özelliği sadece aylık takvimler için geçerlidir.

Belirli Günler Arasında Takvim

Örneğin 01.08.2020 ile 01.06.20213 arasındaki tarihleri içeren bir takvim çizdirmek isterseniz, bunun için start_date ve end_date argümanlarını kullanacağız.

Heat Map (Isı Haritası) Çizdirmek

Eğer takvimizin belirli bir değişkenin değerine günlerin koyu renk ya da açık renk olmasını istersek;örneğin günlük covid-19 vaka sayısı;heat map de çizdirebiliriz.

Bunun için üç ana argüman kullanacağız.

İlk argüman special days: Bu argümana uzunluğu 365 olacak şekilde bir vektör atayacağız. Atadığımız vektör bizim takvimimizi renklendirecek değişkenin değerleri olmak zorunda. Her bir indeks bir güne karşılık gelecek.Örneğin 2. sıradaki değer 5 ise bu 2 Ocak tarihindeki değer olacak. 59. indexteki değer 6 ise bu 28 Şubat tarihindeki değer olacak. Ancak burada dikkat edeceğiniz nokta vektördeki değerlerin karşılık gelen gün değerlerinden büyük olmaması. Örneğin 35. güne 48 değeri gelemez. Bu noktada yapılabilecek en akıllıca yol değerlerinizi standardize ederek 0 ile 1 aralığına getirmek olacaktır.

İkinci argüman ise gradient: Bu argüman bizim takvimimizi renklendiren argüman olacak.

Üçüncü argüman ise special.col: Bu da renklendirmenin tonlarını ayarlayacak argüman.

Aynı şeyi aylık grafikler için de yapabilirsiniz.

Takvimin Fiziksel Görünüşünü Düzenleme

Buraya kadar aylık ve yıllık takvim nasıl çizdirilir, günler nasıl renklendirilir üzerine çeşitli örneklerde bulunduk. Şimdi takvimin başlığı, rengi, arka planı gibi detaylar üzerinde düzenlemeler yaparak takvimimizin görünüşünü düzenleyeceğiz.

  • Yıllık grafiği ele alalım.

  • Şimdi takvimimize başlık ekleyelim.

  • Şimdi başlığın büyüklüğünü değiştirelim

  • Şimdi rengini değiştirelim

  • Başlığımızın altına alt başlık ekleyelim ve rengini ayarlayalım

  • Hafta sonlarını renklendirelim

  • Takvimimizin kenar çizgilerinin renklerini ve kalınlıklarını değiştirelim

  • Şimdi ise takvimimizin yazı fontlarını, renklerini değiştirelim.

  • Son olarak takvimimize bir de arka plan fotoğrafı ekleyelim

Bunun için ise bg.img argümanını kullanacağız

Daha resmi bir takvim hazırlamak isterseniz eğer aşağıdaki örneği inceleyebilirsiniz.

Son olarak hazırladığınız takvimleri pdf olarak kaydedebilir, görsel sorun yaşamadan çıktısını alabilirsiniz. Örneğin son takvimimizi A4 kağıdına sığacak bir şekilde pdf olarak kaydedelim ve adına da 2021_takvim diyelim.

[Kaynak için tıklayın] (https://r-coder.com/calendar-plot-r/?fbclid=IwAR3C77J3t5A-dFofbSXTP0Kk6xKzWQ-2Fa8m5Lb3rh-fekbbf6z_Pq6A5Nk)

Soru ve görüşleriniz için: