Bölüm9 Grafikler
R’in en temel işlevlerinden biri de veri görselleştirmedir, bu bakımdan grafik çeşitleri ve uygulama bakımından oldukça zengin bir yapıya sahiptir.
<- c(1.1,2,3.5,3.9,4.2)
foo <- c(2,2.2,-1.3,0,0.2)
bar plot(foo,bar)
Grafik yapısının farklılaştırması amacıyla kullanılabilecek çok çeşitli grafiksel parametreler vardır. Bu parametreler, noktaların renklendirilmesi ve eksen etiketlerinin eklenmesi gibi basit görsel geliştirmeleri çağırır ve ayrıca grafikteki teknik yönleri kontrol edebilir. En sık kullanılan grafik parametrelerinden bazıları burada listelenmiştir;
type: R’ye koordinatların nasıl çizileceğini söyler (örneğin, bağımsız noktalar olarak veya çizgilerle veya hem noktalar hem de çizgilerle).
plot(foo, bar, type="l")
main, xlab, ylab: Sırasıyla grafik başlığı, yatay eksen etiketi ve dikey eksen etiketini tanımlamak amacıyla kullanılır.
plot(foo,bar,type="b",main="Grafik adı",xlab="x ekseni",
ylab="y ekseni")
col: Grafikte yer alan nokta ve çizgilerin renklerinin tanımlanması amacıyla kullanılır.
plot(foo,bar,type="b",main="Grafik adı",xlab="",ylab="",col=2)
pch: Nokta karakterin seçiminde kullanılır, bireysel noktaların kullanıldığı grafiklerde noktanın hangi şekil ile temsil edileceğini gösterir.
plot(foo,bar,type="b",main="Grafik adı", col=4,pch=8)
cex: Çizilen nokta karakterinin boyutunun belirlenmesi amacıyla kullanılır.
plot(foo,bar,type="b",main="Grafik adı", col=4,pch=8, cex=2.3)
lty: Çizgi tipini belirler (noktalı veya çizgili gibi).
plot(foo,bar,type="b",main="Grafik adı", col=6,pch=15,cex=0.7, lty=3)
lwd: Grafikte yer alan çizginin kalınlığını belirler.
plot(foo,bar,type="b",main="Grafik adı",
col=6,pch=15,lty=3,cex=0.7,lwd=2)
xlim, ylim: Grafikteki yatay ve dikey eksen genişliğini (grafik alanını) belirler.
plot(foo,bar,type="b",main="Grafik adı",xlab="",ylab="",
col=6,pch=15,lty=3,cex=0.7,lwd=2,xlim=c(3,5),ylim=c(-0.5,0.2))
9.1 Mevcut grafik üzerine ekleme yapmak
Bazı durumlarda sıfırdan grafik üretmek yerine mevcut grafik üzerinde eklemeler yapmak kullanışlı olabilir, veya grafiğiniz üzerinde belirli noktalara vurgu yapma ihtiyacınız doğabilir, bu gibi durumlarda faydalanabileceğimiz fonksiyonlar aşağıda açıklanacaktır.
points: nokta ekleme
lines, abline, segments: çizgi ekleme
text: metin ekleme
arrows: ok ekleme
legend: etiket ekleme
9.2 Önemli grafik paketleri
9.2.1 lattice
Grafik elde etme üzerine ilk önerilen paketlerden biri lattice
’dir. Bu kapsamda kullanılabilecek fonksiyonlardan birkaçı aşağıda örneklenmiştir.
::xyplot(Sepal.Width ~ Sepal.Length, data = iris) lattice
Kategorik değişken içeren verilerde, kategorilere bağlı olarak çoklu grafik elde etmek de mümkündür. Örnek uygulamada iris
verisi için Species
kategorik değişkendir.
levels(iris$Species)
## [1] "setosa" "versicolor" "virginica"
::xyplot(Sepal.Width ~ Sepal.Length | Species, data = iris) lattice
Paketin temel amacı, karmaşık grafikleri tek bir fonksiyon yardımı ile çizebilmektir, bu bakımdan farklı grafik türleri aşağıda örneklenmiştir.
::dotplot(Species ~ Petal.Length, data = iris) lattice
::bwplot(Species ~ Petal.Length, data = iris) lattice
library(MASS) # Cars93 dataset icin indiriyoruz
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
<-dplyr::select(Cars93,Price,Type,Origin)
Carshead(Cars)
## Price Type Origin
## 1 15.9 Small non-USA
## 2 33.9 Midsize non-USA
## 3 29.1 Compact non-USA
## 4 37.7 Midsize non-USA
## 5 30.0 Midsize non-USA
## 6 15.7 Midsize USA
::bwplot(Price ~ Type | Origin, data = Cars93) lattice
9.2.2 ggplot2
Grafik oluşturmak için en sık kullanılan paketlerden biri Hadley Wickham tarafından oluşturulan ggplot2
’dir. Temeli The Grammar of Graphics kitabına dayanmaktadır. Etkileyici görseller elde etme imkanı sunan ggplot2
, bu işlemi qplot()
ve ggplot()
fonksiyonları ile gerçekleştirmektedir.
9.2.2.1 qplot
library(ggplot2)
attach(iris)
qplot(Sepal.Length, Sepal.Width, color = Species, shape = Species)
qplot(Species, Petal.Length, geom = "boxplot")
9.2.2.2 ggplot
ggplot2
paketinin temel fonksiyonu olan ggplot()
, gelişmiş görsel raporlama imkanı sunmaktadır. Bu fonksiyonu kullanarak görselleştirme yapılacaksa anlaşılması gereken üç yapı mevcuttur, bunlar aesthetics, geoms, ve stats’dır.
aesthetics: aes()
fonksiyonu ile görsel seçimler yapılır, konum, renk ve poziyon gibi.
geoms aes()
fonksiyonu ile tanımlanan işlemlerin grafiğe aktarılmasını sağlar.Bu işlemler geom_point()
, geom_line()
gibi fonksiyonlar yardımı ile gerçekleştirilir.
stats stat_summary()
, stat_quantile()
gibi fonksiyonlar aracılığı ile verinin özetlenmesini sağlar.
<- ggplot(iris) +
p geom_point(aes(x = Petal.Length, y = Petal.Width, shape = Species, color = Species)) +
xlab("Petal Length") + # Add axis labels
ylab("Petal Width") +
ggtitle("Petal Length and Petal Width of Iris Flowers")
print(p)
9.2.3 plotly
İnteraktif grafik elde etme ve html çıktı elde edebilme imkanı plotly
paketini de oldukça popüler hale getirmiştir.
library(plotly)
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
<- colorRamp(c("red", "blue"))
col1
<-plot_ly(mpg, x = ~cty, y = ~hwy, z = ~cyl)
p
add_markers(p,color = ~cyl, colors = col1)