-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathggplot2.qmd
676 lines (419 loc) · 43 KB
/
ggplot2.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
# ggplot2 ile Veri Görselleştirme {.unnumbered}
{fig-align="center" width="426" height="308"}
Bu bölümde ggplot2 paketi ile verilerin nasıl görselleştirldiğine bakacağız. ggplot2 grafiklerin dil bilgisi **(grammar of graphics)** prensiplerini temel alarak oluşturulmuştur. Bu prensiplere göre her grafik aynı parçalardan oluşturulabilir: bir veri seti, koordinat sistemi, ve "**`geom`**"lar - veri noktalarını temsil eden görsel işaretler.
ggplot2 ile veri görselleştirebilmemiz için önce grafik yapısını iyi tanımamız gerekiyor. Yatay eksen x ekseni, dikey eksen ise y ekseni olarak kabul ediliyor. Veri görselleştirmede **`ggplot`**`()` fonksiyonunu kullanıyoruz. ggplot() fonksiyonu içinde veri seti ismi ve **`aes`**`()` adlı estetik argümanına yatay ve dikey eksende kullanacağımız değişkenler (sütun isimleri) ile yer veriyoruz. Sonrasında, tercih edeceğimiz grafik tipine göre, **`geom`** fonksiyonlarından birini kullanacağız. Sıklıkla kullanılan geom fonksiyonları şunlardır:
- Nokta grafiği için `geom_point()`
- Çubuk veya sütun grafik için `geom_col()` ve `geom_bar()`
- Çizgi grafiği için `geom_line()`
- Histogram grafiği için `geom_histogram()`
- Boxplot grafiği için `geom_boxplot()`
## Dağılım Grafikleri
Dağılım grafikleri, veri setinin dağılımını görsel olarak temsil etmek için kullanılan grafik türleridir. Bu grafikler, veri noktalarının, değerlerinin veya gözlemlerinin nasıl dağıldığını incelemek ve veri setindeki desenleri, eğilimleri ve aykırı değerleri anlamak için kullanılır. En yaygın olanı histogram grafikleridir.
Histogram, veri setinin sayısal dağılımını gösteren bir grafiktir. Veri aralığı belli bir aralığa bölen çubuklardan oluşur ve her çubuk, bu aralıktaki veri noktalarının sayısını temsil eder. Histogramlar genellikle sürekli verilerin dağılımını göstermek için kullanılır.
Bunun dışında boxplot (kutu) grafikleri de dağılımı görselleştirmek için kullanılmaktadır. Boxplot, veri setinin beş özet istatistiği (minimum, ilk çeyrek, medyan, üçüncü çeyrek, maksimum) kullanarak veri dağılımını temsil eder. Bu grafik, aykırı değerleri tanımlamak ve merkezi eğilim ile dağılımın yayılmasını görsel olarak incelemek için kullanılır.
**`geom_histogram`** fonksiyonu, ggplot2 paketinde kullanılan bir grafik geometrisidir ve histogram oluşturmak için kullanılır.
```{r message=FALSE, warning=FALSE}
library(ggplot2)
library(dplyr)
ggplot(diamonds, aes(price)) +
geom_histogram()
```
**`binwidth`** parametresi, histogramdaki sütunların genişliğini (veya "bin" genişliğini) belirlemek için kullanılır. Histogram, veri setini belirli aralıklara böler ve her aralıkta kaç gözlem olduğunu gösteren sütunlardan oluşur. Bu aralıklara "bin" denir ve **`binwidth`** parametresi, bu aralıkların genişliğini belirler.
```{r}
ggplot(diamonds, aes(price)) +
geom_histogram(binwidth = 1000,fill = "green")
```
Bu örnekte, **`binwidth = 1000`** ifadesiyle belirtilen bin genişliği ile bir histogram oluşturulmuştur. Bu, veri setini 1000 birim genişliğinde olan aralıklara bölecektir.
**`geom_histogram`** fonksiyonu aynı zamanda **`bins`** parametresini de kullanarak histogramdaki sütun sayısını belirlemenize olanak tanır. **`bins`** parametresi, veri setinin aralıklara bölünme sayısını belirler.
```{r}
# Karat değerlerinin histogramı
ggplot(diamonds, aes(x = carat)) +
geom_histogram(bins = 30, fill = "skyblue", color = "black") +
labs(title = "Histogram of Diamond Carat",
x = "Carat",
y = "Frequency")
```
Bu örnekte, **`bins = 30`** ifadesiyle belirtilen 30 sütunlu bir histogram oluşturulmuştur. **`fill`** ve **`color`** parametreleri, sütunların içinin ve kenar çizgilerinin renklendirilmesi için kullanılmıştır.
**`alpha`** argümanı, ggplot2 paketinde kullanılan bir estetiktir ve bir geometrinin (örneğin, nokta, çizgi, sütun, vb.) saydamlığını kontrol etmek için kullanılır. **`alpha`** değeri, 0 ile 1 arasında bir sayıdır; 0 tamamen şeffaflığı (görünmez) ve 1 tam opaklığı temsil eder.
Özellikle, **`alpha`** argümanı, bir nesnenin diğer nesnelerle örtüldüğü durumları görselleştirmek için kullanışlıdır. Örneğin, nokta, sütun veya çizgilerin birbirini örttüğü durumlarda kullanılabilir.
```{r}
# Kesim sınıflarına göre karat yoğunluk fonksiyonları ile grafik oluştur
ggplot(diamonds, aes(x = carat, fill = cut)) +
geom_density(alpha = 0.5, color = "black") +
labs(title = "Density Plot of Carat by Cut",
x = "Carat",
y = "Density",
fill = "Cut") +
theme_minimal()
```
Bu örnekte, **`geom_density`** fonksiyonunu kullanarak elmasların karat değerlerinin kesim sınıflarına göre yoğunluk fonksiyonlarını gösteren bir grafik oluşturduk. **`alpha = 0.5`** ifadesiyle belirtilen saydamlık düzeyi, farklı kesim sınıflarına ait yoğunluk fonksiyonlarının birbirini örttüğü bölgeleri daha iyi görselleştirmek için kullanılmıştır. **`color = "black"`** ifadesi ise çizgi renklerini belirtir.
**`theme_minimal`**, ise **`ggplot2`** paketinde bulunan bir tema (theme) fonksiyonudur. Tema fonksiyonları, grafiklerin görünümünü özelleştirmek için kullanılır ve çeşitli özellikleri kontrol eder. **`theme_minimal`** özel bir temadır ve belirli bir stilde basitleştirilmiş bir görünüm sağlar. Bu tema, grafik üzerindeki çizgi ve arka plan öğelerini minimalist bir şekilde düzenler. Yani, daha az çerçeve, gölgeleme ve artı dekoratif özellik içerir. Bu, veriyi vurgulamak ve grafiği daha okunabilir hale getirmek amacıyla kullanılır.
**`facet_wrap`** fonksiyonu, ggplot2 paketinde bir tema (facet) fonksiyonudur ve veriyi belirli bir faktör veya değişkenle bölerken, aynı grafik tasarımını korumak için kullanılır. Bu, veri setinizin bir kategorisine göre alt grafikler oluşturmanıza olanak tanır.
Örneğin, "diamonds" veri setindeki kesim sınıflarına (cut) göre karat (carat) değerlerini gösteren bir grafik oluşturalım ve bunu **`facet_wrap`** kullanarak kesim sınıflarına göre ayrı alt grafiklere bölelim.
```{r}
# Kesim sınıflarına göre karat değerlerini gösteren grafik oluştur
ggplot(diamonds, aes(x = carat, fill = cut)) +
geom_density(alpha = 0.5, color = "black") +
labs(title = "Density Plot of Carat by Cut",
x = "Carat",
y = "Density",
fill = "Cut") +
facet_wrap(~cut, scales = "free_y") +
theme_minimal()
```
Bu örnekte, **`facet_wrap(~cut, scales = "free_y")`** ifadesi ile "cut" değişkenine göre alt grafiklere bölme işlemi gerçekleştirilmiştir. **`scales = "free_y"`** ifadesi, y eksenlerinin serbest bırakılmasını, yani her bir alt grafikte y eksen ölçeğinin kendi içinde adapte edilmesini sağlar. Bu, alt grafikler arasında karşılaştırma yapmayı kolaylaştırır.
**`facet_grid`** fonksiyonu, **`ggplot2`** paketinde bir başka tema (facet) fonksiyonudur ve iki faktörü kullanarak bir tabloyu alt grafiklere böler. **`facet_wrap`** fonksiyonu ile benzerdir, ancak farklı bir düzenleme yapısına sahiptir. Örneğin, "diamonds" veri setindeki kesim sınıflarına (cut) ve renklere (color) göre karat (carat) değerlerini gösteren bir grafik oluşturalım.
```{r}
# Kesim sınıflarına ve renklere göre karat değerlerini gösteren grafik oluştur
ggplot(diamonds, aes(x = carat, fill = cut)) +
geom_density(alpha = 0.5, color = "black") +
labs(title = "Density Plot of Carat by Cut and Color",
x = "Carat",
y = "Density",
fill = "Cut") +
facet_grid(cut ~ color, scales = "free_y") +
theme_minimal()
```
**`geom_boxplot`**, ggplot2 paketinde kullanılan bir geometri fonksiyonudur ve veri setindeki bir sayısal değişkenin (örneğin, fiyat, karat, vb.) dağılımını görselleştirmek için kullanılır. Bu fonksiyon, bir kutu çizgisinin çizilmesi ve altında ve üstünde yer alan uç (whisker) hatlarıyla birlikte medyan ve çeyrekliklerin görüntülenmesini sağlar.
Kutu grafikleri, veri dağılımının merkezi eğilimini, yayılımını ve simetrisini hızlı bir şekilde gösteren etkili bir araçtır. Aşağıda, "diamonds" veri setindeki kesim sınıflarına göre fiyatların **`geom_boxplot`** kullanılarak nasıl görselleştirileceğine dair bir örnek bulunmaktadır.
```{r}
# Kesim sınıflarına göre fiyatları gösteren boxplot oluştur
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
geom_boxplot() +
labs(title = "Boxplot of Prices by Cut",
x = "Cut",
y = "Price",
fill = "Cut") +
theme_minimal()
```
Bu kod, her bir kesim sınıfının fiyat dağılımını gösteren bir boxplot oluşturur. Her bir kutu, verinin çeyrekliklerini (Q1, medyan, Q3) temsil eder ve uç hatlar (whisker) genellikle verinin genel yayılımını gösterir. Bu şekilde, elmas fiyatlarının kesim sınıfları arasındaki dağılımı hızlı bir şekilde görebilirsiniz.
**`geom_boxplot`** kullanırken ortalamayı göstermek için bazı ek ayarlamalar yapabiliriz. Özellikle, **`stat_summary`** fonksiyonunu kullanarak ortalamayı içeren bir çizgi ekleyebiliriz. Aşağıda, **`stat_summary`** fonksiyonunu kullanarak her kutu içindeki ortalamayı gösteren bir örnek bulunmaktadır.
```{r}
# Kesim sınıflarına göre fiyatları gösteren boxplot oluştur
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
geom_boxplot() +
stat_summary(
fun = mean,
geom = "point",
shape = 18,
size = 3,
color = "red",
position = position_dodge(0.75)
) +
labs(title = "Boxplot of Prices by Cut with Mean",
x = "Cut",
y = "Price",
fill = "Cut") +
theme_minimal()
```
**`position = position_dodge(0.75)`** ifadesi, **`stat_summary`** fonksiyonu içinde kullanılarak ortalamayı temsil eden noktaların (mean points) yatay yönde bir miktar kaydırılmasını ifade eder. Bu, ortalamayı gösteren noktaların, boxplot içinde daha düzenli ve anlamlı bir şekilde görünmesini sağlamak için kullanılır.
Detaylı olarak açıklamak gerekirse; **`position_dodge(0.75)`**, noktaların kutuların içinde yatay yönde ne kadar kaydırılacağını belirtir. Bu değer 0 ile 1 arasında bir sayıdır ve 0, hiç kaydırma anlamına gelirken, 1, tamamen ayrık bir konumu temsil eder. Yani, 0.75, noktaların bir miktar sağa kaydırılmasını ifade eder. Bu birim genellikle x-eksenindeki veri genişliği ya da ölçeğine bağlıdır. Eğer x-eksenindeki veriler sayısal değilse (örneğin, kategorik değişkenler) birim genişliği birimi anlam taşımaz ve yatay konumları düzenlemede başka bir anlam ifade edebilir. Ancak, sayısal veri genişliği olan durumlarda, bu birim genişliği x-eksenindeki veri aralığına karşılık gelir.
::: callout-warning
## Dikkat
**`position_dodge`** fonksiyonunda belirtilen değer 1'den büyük olabilir. Ancak, 1'den büyük bir değer kullanmak genellikle uygunsuz sonuçlara yol açar. Bu durumda, noktalar birbirine çok yakın hale gelir ve grafik üzerinde karışıklık olabilir. Ayarlamayı denemek ve grafik üzerindeki etkilerini gözlemlemek, en iyi sonuca ulaşmak için önemlidir.
:::
Bu şekilde, ortalamayı gösteren noktalar, kutular içinde daha rahat bir şekilde görünebilir ve boxplot üzerinde daha net bir şekilde ayrılabilir. Bu tür ayarlamalar, grafiklerin daha okunabilir ve anlaşılır olmasına katkıda bulunabilir.
Boxplot grafiğine benzer şekilde kullanabileceğimiz başka bir grafik çeşidi ise violin grafikleridir. Violin grafiği, bir sayısal değişkenin dağılımını görselleştirmek için kullanılır. Violin grafiği, bir kutu plotunun etrafına simetrik olarak yerleştirilen birer çift yay (kernel density estimate) içerir. Bu yaylar, veri setinin yoğunluk fonksiyonunu temsil eder ve kutu plotunun içindeki medyan, çeyreklikler ve diğer istatistiklerle birleştirilir.
Violin grafiği, kutu plotunun sunduğu merkezi eğilim ve yayılım bilgilerine ek olarak, veri setinin dağılımının şekli ve yoğunluğu hakkında daha fazla bilgi sağlar. Grafiğin geniş kısımları, veri setinin yoğun olduğu bölgeleri temsil ederken, dar kısımlar daha düşük yoğunluğa sahip alanları gösterir. Bu sayede, violin grafiği veri setinin dağılımının görsel bir özetini sunar.
```{r}
# Kesim sınıflarına göre fiyatların violin grafiği
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
geom_violin() +
labs(title = "Violin Plot of Prices by Cut",
x = "Cut",
y = "Price",
fill = "Cut") +
theme_minimal()
```
Bu violin grafiği, kesim sınıfları arasında fiyat dağılımlarını karşılaştırmak için kullanılır. Violin grafiği, her bir kesim sınıfının fiyat yoğunluğunu ve merkezi eğilimini görsel olarak özetler.
## Saçılım Grafikleri
Saçılım (scatter) grafiği, genellikle fizik ve istatistik gibi bilimlerde kullanılan bir grafik türüdür. Saçılım grafiği, iki değişken arasındaki ilişkiyi görsel olarak göstermek için kullanılır. Bir eksende bir değişkenin değerleri, diğer eksende ise diğer değişkenin değerleri yer alır. Her bir nokta, veri setindeki bir gözlem birimini temsil eder. İki değişken arasındaki ilişki, noktaların dağılımı üzerinden anlaşılabilir.
Saçılım grafiklerinin temel amaçları şunlar:
1. **İki Değişken Arasındaki İlişkiyi Görselleştirme:** Saçılım grafikleri, iki değişken arasındaki ilişkiyi anlamak için etkili bir araçtır. Pozitif, negatif, ya da hiçbir ilişki olup olmadığını hızlıca gösterir.
2. **Aykırı Değerleri ve Dağılımı Kontrol Etme:** Saçılım grafikleri, aykırı değerleri ve değişkenlerin dağılımını görsel olarak kontrol etmek için kullanılır.
3. **Korelasyon Analizi:** İki değişken arasındaki korelasyonu değerlendirmek için saçılım grafikleri kullanılabilir. İki değişken arasındaki doğrusal ilişkiyi belirlemek için korelasyon katsayısı kullanılabilir.
Saçılım grafiği kullanarak, iki değişken arasındaki ilişkinin doğası hakkında bilgi edinebilirsiniz. Örneğin, pozitif bir korelasyon varsa, veri noktaları genellikle yukarı doğru bir eğilim gösterirken, negatif bir korelasyon varsa, veri noktaları genellikle aşağı doğru bir eğilim gösterir. Korelasyon olmaması durumunda ise veri noktaları dağınık bir şekilde yayılmış olur. Saçılım grafiği, istatistiksel analizlerde veri keşfi yapmak ve ilişkileri anlamak için önemli bir araçtır.
Şimdi, bir örnek üzerinden saçılım grafiklerini R ile nasıl oluşturabileceğinize bakalım. Aşağıda, R'de **`mtcars`** veri seti üzerinden bir örnek bulunmaktadır.
```{r}
# Saçılım grafiği oluşturma
ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point() +
labs(title = "Saçılım Grafiği",
x = "Ağırlık (wt)",
y = "Miles Per Gallon (mpg)")
```
Bu örnekte, **`mtcars`** veri setindeki ağırlık (**`wt`**) ve yakıt verimliliği (**`mpg`**) değişkenleri arasındaki ilişkiyi gösteren bir saçılım grafiği oluşturduk. **`ggplot2`** paketini kullanarak **`ggplot`** fonksiyonu ile grafiği oluşturduk, ardından **`geom_point()`** fonksiyonu ile noktaları ekledik ve **`labs()`** fonksiyonu ile ekseni etiketledik.
Aşağıdaki örnek, çeşitli argümanların nasıl kullanılabileceğini göstermektedir. Saçılım grafiklerinde kullanılabilen birçok farklı argüman vardır ve ihtiyacınıza göre bunları özelleştirebilirsiniz. Bu argümanlar, grafikteki renkler, şekiller, boyutlar, saydamlıklar ve diğer estetik özellikleri kontrol etmenize olanak tanır.
```{r}
# Saçılım grafiği oluşturma ve özellikleri belirleme
ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl), size = hp)) +
geom_point(shape = 16, alpha = 0.7) + # Nokta şekli ve saydamlık
labs(title = "Saçılım Grafiği",
x = "Ağırlık (wt)",
y = "Miles Per Gallon (mpg)",
color = "Silindir Sayısı",
size = "Güç (hp)") +
theme_minimal() + # Tema seçimi
scale_color_manual(values = c("red", "green", "blue")) # Renk paleti
```
- **`color`**: **`factor(cyl)`** ile silindir sayısına göre renklendirme.
- **`size`**: **`hp`** ile güç değerine göre nokta boyutu.
- **`shape`**: **`16`** ile nokta şekli belirleme.
- **`alpha`**: **`0.7`** ile nokta saydamlığı.
- **`labs()`**: Grafik başlığı ve ekseni etiketleri.
- **`theme_minimal()`**: Minimal bir tema seçimi.
- **`scale_color_manual()`**: Renk paletinin manuel olarak belirlenmesi.
**`geom_smooth()`**, **`ggplot2`** paketinde bulunan bir geometrik fonksiyondur ve saçılım grafiklerine regresyon çizgisi veya düzeltme çizgisi eklemek için kullanılır. Bu fonksiyon, veri üzerinde düzenli bir eğilimi görselleştirmek veya iki değişken arasındaki ilişkiyi özetlemek amacıyla kullanılır.
**`geom_smooth()`** fonksiyonu, özellikle saçılım grafiklerindeki noktalar arasındaki eğilimi ifade etmek ve bu eğilimi göstermek için kullanılır. Bu çizgi, genellikle loess düzeltme çizgisi veya lineer regresyon çizgisi gibi yöntemlere dayanabilir.
::: callout-note
## Loess Hakkında
LOESS (LOcally WEighted Scatterplot Smoother), bir veri setindeki noktalar arasındaki düzenliği ifade etmek için kullanılan bir regresyon yöntemidir. LOESS, birçok noktadan oluşan bir saçılım grafiğine uygulandığında, bu grafiği daha yumuşak bir eğriyle düzeltir ve genel bir eğilimi ifade eder.
LOESS yöntemi, her bir noktanın çevresindeki komşu noktalara daha fazla ağırlık verir ve bu ağırlıkları kullanarak her bir noktanın regresyonunu hesaplar. Böylece, LOESS yöntemi, veri setindeki lokal düzenlemeleri daha iyi yakalayabilir ve genel eğilimi daha esnek bir şekilde ifade edebilir.
:::
Aşağıda, **`geom_smooth()`** fonksiyonu ile **`mtcars`** veri seti üzerinde bir örnek bulunmaktadır:
```{r warning=FALSE}
# Saçılım grafiği oluşturma ve düzeltme çizgisi ekleme
ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
labs(title = "Saçılım Grafiği with Düzeltme Çizgisi",
x = "Ağırlık (wt)",
y = "Miles Per Gallon (mpg)")
```
Bu örnekte:
- **`geom_smooth()`** fonksiyonu, düzeltme çizgisini eklemek için kullanılmıştır.
- **`method = "lm"`** parametresi, lineer regresyon modelini kullanmasını belirtir.
- **`se = FALSE`** parametresi, güven aralığını göstermemesini sağlar.
- **`color = "blue"`** parametresi, düzeltme çizgisinin rengini belirler.
Bu örnek, ağırlık (**`wt`**) ile yakıt verimliliği (**`mpg`**) arasındaki ilişkiyi gösteren bir saçılım grafiği oluşturur ve bu grafiğe bir lineer regresyon düzeltme çizgisi ekler. Bu düzeltme çizgisi, iki değişken arasındaki genel eğilimi görsel olarak özetler.
**`se=TRUE`** parametresi, **`geom_smooth()`** fonksiyonu kullanılarak eklenen düzeltme çizgisi veya eğilim çizgisi etrafında güven aralığı (confidence interval) göstermek için kullanılır. Güven aralığı, regresyon çizgisinin tahmini değeri etrafında belirli bir güven düzeyindeki belirsizliği ifade eder.
Aşağıda, **`se=TRUE`** parametresi ile **`geom_smooth()`** kullanarak bir örnek bulunmaktadır:
```{r}
# Saçılım grafiği oluşturma ve düzeltme çizgisi ile güven aralığı ekleme
ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point() +
geom_smooth(method = "loess", se = TRUE, color = "blue") +
labs(title = "Saçılım Grafiği-LOESS Düzeltme Çizgisi ve Güven Aralığı",
x = "Ağırlık (wt)",
y = "Miles Per Gallon (mpg)")
```
- **`geom_smooth(method = "loess", se = TRUE, color = "blue")`** satırı, LOESS düzeltme çizgisini eklerken aynı zamanda güven aralığını da gösterir.
- **`se = TRUE`** parametresi, güven aralığını etkinleştirir.
- **`color = "blue"`** parametresi, çizginin rengini belirler.
Bu örnek grafiğin sağ tarafında çizilen mavi bant, LOESS düzeltme çizgisinin etrafında %95 güven aralığını temsil eder. Yani, her x değeri için bu bant içinde düzeltilmiş tahmini değerlerin olasılığı %95'tir. Güven aralığı, regresyon çizgisinin ne kadar güvenilir olduğunu ve tahminlerin belirli bir güven düzeyinde ne kadar kesin olduğunu anlamak için kullanılır.
## Sütun Grafikleri
Sütun grafikleri, verileri kategorik veya gruplara göre temsil etmek için kullanılan bir grafik türüdür. Bu grafik türü, farklı kategorilerin veya grupların sayısal değerlerini karşılaştırmak veya görselleştirmek için kullanılır. Sütun grafikleri dikey çubuklardan oluşur ve her çubuk, bir kategori veya grup için bir değeri temsil eder. Sütun grafiklerinin temel bileşenleri şunlardır:
1. **Yatay Eksen (X-Eksen):** Bu eksende kategoriler veya gruplar yer alır. Örneğin, bir yıl boyunca aylar, ürün kategorileri, bölgeler veya şirket departmanları gibi farklı kategoriler olabilir.
2. **Dikey Eksen (Y-Eksen):** Bu eksende sayısal değerler yer alır ve sütunların yükseklikleri bu değerleri temsil eder. Değerler genellikle sayısal verilerdir ve karşılaştırılabilir bir ölçü birimi içinde bulunurlar.
3. **Sütunlar:** Sütunlar, her bir kategori veya grup için bir değeri temsil eder. Sütunların yükseklikleri, karşılaştırılan değerlerin büyüklüğünü veya ilişkilerini gösterir.
Sütun grafikleri, aşağıdaki amaçlar için kullanılır:
- Karşılaştırmalar: Farklı kategorilerin veya grupların değerlerini karşılaştırmak için kullanılır. Örneğin, farklı ülkelerin gayri safi yurtiçi hasıla (GSYİH) değerlerini karşılaştırmak için sütun grafikleri kullanılabilir.
- Zaman İçi Değişim: Zaman serisi verilerini temsil etmek için kullanılabilir. Her sütun, belirli bir zaman dilimindeki değerleri gösterebilir.
- Kategorik Verilerin İncelenmesi: Ürün kategorileri, şirket departmanları veya müşteri segmentleri gibi kategorik verilerin analizi için kullanılabilir.
Sütun grafikleri, verileri görsel olarak anlamak ve veriler arasındaki farkları veya eğilimleri vurgulamak için etkili bir araçtır. Aynı zamanda verilerin daha kolay anlaşılmasına yardımcı olabilir ve karar verme süreçlerine katkı sağlayabilir.
Örnekler ggplot2 paketi ile birlikte gelen [**`diamonds`**](https://ggplot2.tidyverse.org/reference/diamonds.html) veri seti ile yapılacaktır. Veri hakkında bilgi sahibi olmak için **`dplyr`** paketinde yer alan **`glimpse`** fonksiyonunu kullanabiliriz. Bu fonksiyon, bir veri çerçevesi veya tibble nesnesini özetleyen ve hızlı bir bakış sunan bir fonksiyondur. **`glimpse`** fonksiyonu, veri setindeki değişkenleri, veri türlerini, ve ilk birkaç gözlemi görüntüler. Ayrıca **`summary`** fonksiyonu ile de veride yer alan değişkenlerin temel istatistikleri hakkında bilgi sahibi olabiliriz.
```{r}
glimpse(diamonds)
summary(diamonds)
```
Sütun grafiği üretebilmek için kullanılan fonksiyonlardan bir tanesi **`geom_bar()`**'dır. Aşağıda verilen kod veri setindeki kesim sınıflarını ifade eden **`cut`** değişkenin frekanslarını gösteren bir sütun grafik üretir. Her bir sütun, belirli bir kesim sınıfını temsil eder ve yükseklikleri o kesim sınıfına ait elmas sayısını yansıtır.
```{r}
# sıklık durumunu görselleştirme
ggplot(diamonds, aes(cut)) +
geom_bar()
```
Örneğin **`color`** değişkenine göre gruplandırılmış bir grafik üretelim. Aşağıda yer alan kod, "diamonds" veri setindeki kesim sınıflarının ve renklerinin kombinasyonlarına göre gruplandırılmış bir sütun grafik üretir. Her bir **`cut`** kategorisi için ayrı renkli sütunlar olacaktır.
- **`ggplot(diamonds, aes(cut, fill = color))`**: Bu bölümde, "diamonds" veri setini temel alarak bir ggplot nesnesi oluşturulur. **`aes(cut, fill = color)`** ifadesi, x ekseninde "cut" değişkenini, sütunların renklendirilmesinde ise "color" değişkenini kullanacağımızı belirtir.
- **`geom_bar(position = position_dodge())`**: Bu fonksiyon, gruplandırılmış sütun grafik oluşturur. **`position = position_dodge()`** ifadesi, sütunların yan yana yerleştirilmesini sağlar, yani her bir **`cut`** kategorisi içindeki **`color`** kategorilerini farklı renklerde gösterir. Bu sayede, her bir **`cut`** kategorisi için ayrı renkli sütunlar elde edilir.
```{r}
ggplot(diamonds, aes(cut, fill = color)) +
geom_bar(position = position_dodge()) +
xlab("Pirlanta kaliteleri") +
ylab("Gozlenme Sikliklari")
```
Her bir kesim sınıfı için, **`color`** değişkenine göre renklendirilmiş sütunları olan ve her sütunun yüksekliği, o kesim sınıfındaki elmasların toplam karat değerini temsil eden bir grafik üretelim. Bu durumda y ekseninde **`carat`** değişkenini kullanacağız.
**`geom_bar(stat = "identity")`**: Bu fonksiyon, gruplandırılmış sütun grafik oluşturur. **`stat = "identity"`** ifadesi, her bir sütunun yüksekliğinin, "carat" değişkeninin değerine eşit olacağını belirtir. Yani, sütunların yüksekliği doğrudan carat değişkenine bağlı olacaktır.
```{r}
ggplot(diamonds, aes(x=cut, y=carat,fill = color)) +
geom_bar(stat = "identity")
```
Eğer **`position = "fill"`** kullanırsak, **`geom_bar`** fonksiyonu, her kategori içindeki değerlerin oranlarını gösteren yığılmış bir sütun grafik oluşturur. Bu durumda, her bir kategori toplam yüksekliğe göre doldurulacak ve her bir alt kategori, kendi kategorisi içindeki oranını ifade edecek şekilde düzenlenecektir.
```{r}
ggplot(diamonds, aes(x=cut, y=carat,fill = color)) +
# fill ile oransal olarak gösterim yapılır
geom_bar(stat = "identity",position = "fill")
```
Her bir kesim sınıfının toplam yüksekliğe göre doldurulduğu bu grafikte, her renk kategorisi içindeki sütunlar, o kesim sınıfındaki toplam elmas sayısına oranlanmış şekilde görüntülenir. Bu tür bir grafik, her bir kategorinin toplamda ne kadar paya sahip olduğunu vurgulamak ve kategorinin içindeki alt kategorilerin oranlarını göstermek için kullanışlıdır. Ancak, grafikteki renklerin yorumlanması dikkatlice yapılmalıdır, çünkü her renk, kendi kategorisi içindeki oranları temsil eder.
::: callout-warning
## Dikkat
İki tür çubuk grafik vardır: **`geom_bar()`** ve **`geom_col()`**. **geom_bar()**, çubuğun yüksekliğini her gruptaki vaka sayısıyla (veya ağırlık estetiği sağlanmışsa, ağırlıkların toplamıyla) orantılı hale getirir. Çubukların yüksekliklerinin verilerdeki değerleri temsil etmesini istiyorsanız, bunun yerine **`geom_col()`** kullanın. **geom_bar()** varsayılan olarak **`stat_count()`** kullanır: her x konumundaki vaka sayısını sayar. **`geom_col()`** **`stat_identity()`** kullanır. Yani verileri olduğu gibi bırakır.
:::
## Zaman Serisi Grafikleri
Zaman serisi grafikleri, zamanla değişen verileri görsel olarak temsil etmek için kullanılan grafiklerdir. Bu tür grafikler, belirli bir süre boyunca gözlemlenen verileri analiz etmek, eğilimleri belirlemek, dönemsel desenleri tanımak ve istatistiksel analizler yapmak için yaygın olarak kullanılır. Zaman serisi verileri genellikle sabit aralıklarla veya farklı zaman dilimlerinde toplanır. En yaygın olan türü çizgi grafikleri olmakla birlikte sütun ve alan grafikleri de zaman serilerinin görselleştirilmesinde kullanılabilmektedir.
Örnekler ggplot2 paketi ile birlikte gelen [**`economics`**](https://ggplot2.tidyverse.org/reference/economics.html) veri seti ile yapılacaktır.
```{r}
# verileri inceleyelim
economics
summary(economics)
```
**`economics`** veri setinde bulunan **`date`** ve **`pce`** (Personal Consumption Expenditures - Kişisel Tüketim Harcamaları) değişkenlerini kullanarak bir zaman serisi grafiği oluşturalım.
```{r}
p <- economics %>%
ggplot(aes(x=date,y=pce)) +
geom_line(color="blue") +
theme_minimal() +
labs(x = "",
y = "Personal Consumption Expenditures",
title = "Personal Consumption Expenditures Time Series",
caption = "Economics Data",
subtitle = "Economics Data (1967-2015)")
p
```
Aşağıda bu kodun adım adım açıklamasını bulabilirsiniz:
- **`economics %>%`**: Bu işlem, "pipe" (**`%>%`**) operatörünü kullanarak **`economics`** veri setini bir dizi başka işleme yönlendirir. Bu, veri manipülasyonunu daha okunabilir ve zincirleme bir şekilde yapmamıza olanak tanır.
- **`ggplot(aes(x=date, y=pce))`**: **`ggplot()`** fonksiyonu, temel bir grafik oluşturur. **`aes()`** fonksiyonu içinde **`x`** ve **`y`** argümanları, grafiğin x ve y eksenine hangi verilerin yerleştirileceğini belirtir. Bu durumda, x ekseni **`date`** değişkenini, y ekseni ise **`pce`** değişkenini kullanır.
- **`geom_line(color="blue")`**: **`geom_line()`** fonksiyonu, bir çizgi grafiği ekler. Bu durumda, **`color="blue"`** argümanı ile çizgi rengi mavi olarak belirlenmiştir.
- **`theme_minimal()`**: Bu fonksiyon, grafiği daha sade bir görünüme getirmek için kullanılır. Başka temalar da seçilebilir.
- **`labs(x="", y="Personal Consumption Expenditures", title="Personal Consumption Expenditures Time Series", caption="Economics Data", subtitle="Economics Data (1967-2015)")`**: **`labs()`** fonksiyonu, grafiğin başlığını, eksen etiketlerini ve diğer metin öğelerini ayarlar. **`x=""`** ile x ekseninin başlığı kaldırılmış, **`y="Personal Consumption Expenditures"`** ile y ekseninin başlığı belirlenmiş, **`title="Personal Consumption Expenditures Time Series"`** ile grafik başlığı belirlenmiş, **`subtitle="Economics Data (1967-2015)"`** ile alt başlık eklenmiştir.
Bu kod, **`economics`** veri setindeki tüketim harcamalarının zaman içindeki değişimini mavi bir çizgi grafiği ile gösteren bir ggplot2 grafiği oluşturur.
```{r}
# zaman eksenini ve legend ayarlama
p +
scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
theme(axis.text.x = element_text(angle = 45), legend.position = "top")
```
**`p`** ismini verdiğimiz grafik objesine eklenen kısım, **`scale_x_date()`** ve **`theme()`** fonksiyonlarıyla grafiğin x ekseni üzerindeki tarih etiketlerini ve genel görünümü özelleştirmektedir. Aşağıda bu kodun eklenmiş haliyle birlikte açıklamasını bulabilirsiniz:
- **`scale_x_date(date_breaks = "1 year", date_labels = "%Y")`**: Bu bölüm, x ekseni üzerindeki tarih etiketlerini özelleştirmek için kullanılır. **`date_breaks`** argümanı, tarih etiketlerinin kaç yılda bir görüneceğini belirler. **`date_labels`** argümanı ise tarih etiketlerinin nasıl formatlanacağını belirler. Bu örnekte, her yılın gösterilmesi ve yıl formatında görüntülenmesi belirlenmiştir.
- **`theme(axis.text.x = element_text(angle = 45), legend.position = "top")`**: Bu bölüm, genel görünümü özelleştirmek için kullanılır. **`axis.text.x`** ile x ekseni etiketlerinin açısını belirleyebiliriz (burada 45 derece olarak belirlenmiştir). **`legend.position`** ile ise lejantın grafiğin neresinde yer alacağını belirleyebiliriz (burada "top" olarak belirlenmiştir).
Bu eklemelerle birlikte, grafiğin x ekseni üzerinde yıllık tarih etiketleri görünecek ve bu etiketler 45 derece eğimli olacak. Ayrıca, lejant grafiğin üst kısmına yerleştirilecektir.
```{r}
p +
scale_x_date(date_breaks = "2 year", date_labels = "%Y",expand = c(0,0)) +
theme(axis.text.x = element_text(angle = 45), legend.position = "top")
```
Eklendiğiniz bu kod parçası ile x eksenindeki tarih etiketleri, 2 yılda bir görünecek şekilde ayarlanmıştır (**`date_breaks = "2 year"`**). Ayrıca, **`expand = c(0, 0)`** ile x ekseninin başlangıç ve bitişindeki boşluklar sıfır olarak belirlenmiştir. Bu, x ekseninin kenarlarına sıfır boşluk bırakarak grafiği daha kompakt hale getirir.
```{r warning=FALSE}
# çizgi türü değiştirilebilir
economics %>%
ggplot(aes(x=date,y=pce)) +
geom_line(linetype = "dashed", size = 1, colour = "blue")
```
**`linetype`** argümanı, çizgi tipini belirler (burada "dashed" olarak belirlenmiştir). **`size`** argümanı, çizgi kalınlığını belirler (1 olarak belirlenmiştir). **`colour`** argümanı ise çizgi rengini belirler (mavi olarak belirlenmiştir).
::: callout-tip
## Ek Bilgi
**`linetype`** parametresi, **`geom_line()`** fonksiyonu ile çizgi grafiği oluştururken çizgi tipini belirlemek için kullanılır. Bu parametre, çeşitli değerleri kabul eder. İşte yaygın olarak kullanılan bazı **`linetype`** değerleri:
1. **`"solid"`**: Tam çizgi (Varsayılan).
2. **`"dashed"`**: Kesikli çizgi.
3. **`"dotted"`**: Noktalı çizgi.
4. **`"dotdash"`**: Noktalı-kesikli çizgi.
5. **`"longdash"`**: Uzun kesikli çizgi.
6. **`"twodash"`**: Çift kesikli çizgi.
7. **`"blank"`**: Hiç çizgi çizme (görselde görüntülenmez).
Örneğin, **`linetype = "dashed"`** ifadesi, çizginin kesikli olacağını belirtir. Bu değeri dışında başka özelleştirmeler de yapabilirsiniz. **`linetype`** parametresi, daha karmaşık çizgi tipleri oluşturmak için farklı uzunluk ve boşluk kombinasyonlarına da izin verir.
**`linetype`** parametresine yerine sayısal değerleri de atanabilir. Örneğin **`linetype = 1`** ifadesi **`linetype = "solid"`** ile aynı anlama gelir. Yukarıda verilen **`linetype`** türlerinin yanındaki da rakamlar da kullanılabilir.
:::
**`economics`** veri setinden sadece 2010 yılı ve sonrasındaki verileri filtreleyip, bu verileri kullanarak bir zaman serisi çizgi grafiği oluşturalım. Aynı zamanda, **`geom_point()`** fonksiyonu kullanılarak çizgilerin üzerine kırmızı renkte ve büyük boyutta daireler ekleyelim.
```{r}
# zaman grafiğine noktalar ekleme
economics %>%
filter(lubridate::year(date) >= 2010) %>%
ggplot(aes(x=date,y=pce)) +
geom_line()+
geom_point(size = 3, shape= 7, colour = "red")
```
- **`filter(lubridate::year(date) >= 2010)`**: Bu satır, **`lubridate`** paketini kullanarak **`date`** sütunundaki yıl bilgisine göre filtreleme yapar. Yalnızca 2010 yılı ve sonrasındaki verileri içeren bir alt küme oluşturur.
- **`ggplot(aes(x = date, y = pce))`**: Bu satır, ggplot nesnesini oluşturur ve x ekseni olarak **`date`** sütununu, y ekseni olarak ise **`pce`** sütununu belirler.
- **`geom_line()`**: Bu fonksiyon, çizgi grafiğini oluşturur.
- **`geom_point(size = 3, shape = 7, colour = "red")`**: Bu fonksiyon, nokta grafiğini oluşturur. **`size`** argümanı noktaların boyutunu, **`shape`** argümanı nokta tipini (7, çizgi içeren bir daire), **`colour`** argümanı ise nokta rengini belirler. Bu durumda, noktalar kırmızı renkte ve büyük boyutta çizgi içeren daireler olarak belirlenmiştir.
::: callout-tip
## Ek Bilgi
**`size` Parametresi:**
- **Sayılar (Numeric):** Noktaların boyutunu belirtir. Örneğin, **`size = 3`** noktaları küçük, **`size = 5`** noktaları büyük yapar.
**`shape` Parametresi:**
**`shape`** parametresi, noktaların farklı şekillerde görüntülenmesini sağlar. İşte bazı yaygın **`shape`** değerleri:
- **Sayılar (Numeric):** Noktanın şeklini belirtir. Örneğin, **`shape = 0`** noktaları daire, **`shape = 1`** noktaları üçgen yapar.
- **Karakterler (Characters):** Belirli bir karakteri kullanarak şekli belirtirsiniz. Örneğin, **`shape = "A"`** noktaları yıldız, **`shape = "B"`** noktaları kare yapar.
- **Özel Semboller:** Belirli sembollerle ilişkilendirilmiş değerleri kullanabilirsiniz. Örneğin, **`shape = 16`** noktaları çarpı sembolü yapar.
- **Özel Sembollerin İsimleri:** Özel sembollerin adlarını da kullanabilirsiniz. Örneğin, **`shape = "cross"`** noktaları çarpı sembolü yapar.
Bu değerlerin tam listeleri, R'nin resmi belgelerinde ve **`ggplot2`**'nin belgelerinde bulunabilir. Ayrıca, **`?geom_point`** komutunu R ortamında kullanarak doğrudan yardım belgesine erişebilir ve orada kullanılabilecek değerleri inceleyebilirsiniz.
:::
Zaman serilerini görselleştirmek için alan grafikleri de kullanılabilir. Alan grafiği (Area Plot), bir değişkenin zaman içinde veya başka bir değişkenle ilişkili olarak nasıl değiştiğini görselleştirmek için kullanılan bir grafik türüdür. Bu grafik, genellikle bir değişkenin toplamını veya yüzey alanını temsil eder. Alan grafiği, bir çizgi grafiği gibi trendleri gösterirken, aynı zamanda altındaki alanın renklendirilmesi ile de değişkenin toplamını anlamamıza yardımcı olur.
**`economics`** veri setindeki **`date`** ve **`pce`** değişkenleri kullanılarak bir alan grafiği (area plot) oluşturalım. Aynı zamanda, y ekseni aralıkları belirli bir düzenle (**`scale_y_continuous`** fonksiyonu kullanılarak) özelleştirelim.
```{r}
# gölgeli zaman grafiği
economics %>%
ggplot(aes(x=date,y=pce)) +
geom_area(color="blue",fill="red",alpha=0.6) +
# y ekseni aralıklarını ayarlama
scale_y_continuous(breaks = seq(0, max(economics$pce), by = 1000))
```
- **`geom_area(color = "blue", fill = "red", alpha = 0.6)`**: Bu satır, alan grafiğini oluşturur. **`color`** parametresi çizgi rengini, **`fill`** parametresi dolgu rengini, ve **`alpha`** parametresi saydamlığı belirler. Bu durumda, çizgi rengi mavi (**`blue`**), dolgu rengi kırmızı (**`red`**), ve saydamlık değeri 0.6 olarak belirlenmiştir.
- **`scale_y_continuous(breaks = seq(0, max(economics$pce), by = 1000))`**: Bu satır, y ekseni aralıklarını belirler. **`breaks`** parametresi ile belirli aralıklarda y ekseni etiketlerini belirleyebilirsiniz. Bu örnekte, 0'dan başlayarak **`pce`** sütunundaki maksimum değere kadar 1000'lik aralıklarla etiketler belirlenmiştir. Bu, y ekseni etiketlerini daha düzenli bir şekilde göstermeye yardımcı olur.
Sonuç olarak, bu kod **`economics`** veri setindeki kişisel tüketim harcamalarını temsil eden bir alan grafiği oluşturur.
**`economics`** verisi geniş formatlı (wide format) bir veri setidir. Bu, her bir zaman noktasında bir satır ve değişkenleri sütunlarda içerir. Fakat bazı durumlarda uzun formatlı verileri kullanmak daha fazla avantaj sağlayabilir. **`economics_long`** ise uzun formatlı (long format) bir veri setidir. Bu, her bir gözlem biriminin (örneğin, bir tarih ve bir değişken kombinasyonu) bir satırda yer aldığı ve bir sütunun gözlemlenen değerleri içerdiği bir yapıdır. **`economics`** ve **`economics_long`** veri setleri, temelde aynı veri setini temsil eden farklı yapılandırmalara sahip veri setleridir.
Geniş formatlı veri setleri genellikle analizlerde daha kolay okunabilir olabilir, ancak bazı analiz teknikleri için uygun olmayabilir. Uzun formatlı veri setleri genellikle analiz ve görselleştirmelerde daha esneklik sağlar. **`ggplot2`** gibi paketlerle kullanıldığında, farklı değişkenlere göre grafikler oluşturmak daha kolaydır.
**`economics_long`** veri seti içindeki **`date`** , **`value`** ve **`variable`** değişkenlerini kullanarak çoklu bir zaman serisi çizgi grafiği oluşturalım.
```{r}
# verinin yapısını inceleyelim
glimpse(economics_long)
# ilk 10 gözleme bakalım
head(economics_long,10)
# çoklu zaman serisi grafiği oluşturalım
economics_long %>%
ggplot(aes(x=date,y=value))+
geom_line() +
facet_wrap(~variable,scales = "free_y")+
scale_y_log10() # y eksenlerinin logaritması alınır
```
- **`ggplot(aes(x = date, y = value))`**: Bu satır, ggplot nesnesini oluşturur ve x ekseni olarak **`date`** sütununu, y ekseni olarak ise **`value`** sütununu belirler.
- **`geom_line()`**: Bu fonksiyon, çizgi grafiğini oluşturur.
- **`facet_wrap(~variable, scales = "free_y")`**: Bu fonksiyon, **`variable`** değişkenine göre alt grafiklere ayrılmasını sağlar (**`facet_wrap`**). **`scales = "free_y"`** parametresi ile y ekseni ölçeğinin her alt grafikte bağımsız olarak ayarlanmasını sağlar.
- **`scale_y_log10()`**: Bu fonksiyon, y ekseni ölçeğini logaritmik olarak değiştirir. Bu, verilerin logaritmik ölçekte daha iyi anlaşılmasına yardımcı olabilir, özellikle büyük değerler arasında değişim olduğunda.
Sonuç olarak, bu kod, **`economics_long`** veri setindeki farklı değişkenlere (**`variable`**) ait zaman serisi çizgi grafiklerini logaritmik y ekseni ile birleştirilmiş bir şekilde gösterir.
## Grafiklerin Kaydedilmesi
Grafik oluşturulduktan sonra, grafik objesini bir değişkende saklayabilirsiniz (aşağıdaki örnekte "grafik" adını kullandık). Grafik objesini bir değişkende sakladıktan sonra, **`ggsave()`** fonksiyonunu kullanarak grafik dosyasını kaydedebilirsiniz. Grafikleri ayrıca RStudio penceresinin sağ alt kısmında yer alan **Plots** sekmesindeki **`Export`** ile kayıt altına alabilirsiniz.
Aşağıda kod ile, işsizlik oranlarının aylık değişimini içeren bir çubuk grafik oluşturalım ve bu değişimleri pozitif veya negatif olarak etiketleyelim. Öncesinde işsizlik değişkenini kullanarak aylık değişim hesaplayalım ve bu değerleri "**pozitif**" ya da "**negatif**" olarak etiketleyelim. Daha sonra veri setindeki eksik değerleri temizleyelim ve belirli bir tarih aralığını filtreleyerek bir çubuk grafikle görselleştirelim. En son olarak da bu grafiği kaydedelim.
```{r}
grafik <- economics %>%
mutate(
uemploy_mom = unemploy / lag(unemploy) * 100 - 100,
growth = ifelse(uemploy_mom > 0, "pozitif", "negatif")
) %>%
na.omit() %>%
filter(lubridate::year(date) >= 2010) %>%
ggplot(aes(x = date, y = uemploy_mom, fill = growth)) +
geom_col() +
theme(legend.position = "none") +
labs(y = "Aylık Değişim",
title = "Yıllara göre Aylık İstihdam Değişimi (2010-2015)")
grafik
```
**`ggsave`** fonksiyonu, **`ggplot2`** paketinde oluşturulan grafikleri bir dosyaya kaydetmek için kullanılır. Bu fonksiyon, genellikle ggplot2 ile oluşturulan grafikleri bir resim dosyası (PNG, JPEG, PDF vb.) olarak kaydetmek için tercih edilen bir yöntemdir.
```{r}
#| eval: false
ggsave(
"grafik1.png", # kaydedilecek dosya adı
grafik, # kaydedilecek grafik nesnesi
width = 20, # grafiğin genişliği
height = 8, # grafiğin yüksekliği
units = "cm" # genişlik ve yüksekliğin birimi
)
# dpi ile çözünürlük ayarlanabilir
ggsave(
"grafik1.png",
grafik,
width = 20,
height = 8,
unit = "cm",
dpi = 300 # çözünürlük
)
```
**Argümanlar:**
- **`filename`**: Kaydedilecek dosyanın adı. Örneğin, "grafik.png" şeklinde bir dosya adı belirtilebilir.
- **`plot`**: Kaydedilecek ggplot nesnesi. Varsayılan olarak, en son oluşturulan grafik (**`last_plot()`**) kullanılır.
- **`device`**: Kaydedilecek dosya türünü belirler. Örneğin, "png", "jpeg", "pdf" gibi değerler alabilir.
- **`path`**: Kaydedilecek dosyanın yolu. Eğer belirtilmezse, çalışma dizini kullanılır.
- **`scale`**: Grafik ölçeğini belirler. Varsayılan değeri 1'dir.
- **`width`**, **`height`**: Grafik boyutunu belirler. Varsayılan olarak, ggplot nesnesinin orijinal boyutu kullanılır.
- **`units`**: **`width`** ve **`height`** argümanlarının birimi. Örneğin, "in" (inç), "cm" (santimetre), "mm" (milimetre) gibi değerler alabilir.
- **`dpi`**: Piksel başına inç (dots per inch) çözünürlük. Özellikle raster grafik dosyaları için önemlidir.