Plotly Nedir ?

Plotly, verileri görselleştirmek için kullanılan açık kaynaklı bir veri görselleştirme kütüphanesidir. Plotly, Python, R, MATLAB, JavaScript ve Julia gibi birçok programlama dilini destekler.

Plotly, birçok farklı grafik türü ve stilinde grafikler oluşturmanıza olanak tanır. İnteraktif grafikler, çoklu eksenli grafikler, 3B grafikler ve haritalar gibi birçok farklı grafik türünü destekler. Ayrıca, Plotly, web sayfalarında, Jupyter defterlerinde ve hatta masaüstü uygulamalarında grafikleri göstermek için kullanılabilir.

Plotly ayrıca, verilerinizi birçok farklı veri kaynağından almanıza ve bu verileri grafiklerde görselleştirmenize olanak tanıyan bir veri analizi ve görselleştirme platformudur. Plotly’nin kullanımı oldukça basittir ve kolayca özelleştirilebilir grafikler oluşturmanıza olanak tanır.

Plotly’nin Yüklenmesi ve Çağırılması

#install.packages("plotly") Paketin yüklenmesi
library(plotly)
## Zorunlu paket yükleniyor: ggplot2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Plotly, interaktif ve yayın kalitesinde grafikler oluşturmanıza olanak tanıyan bir R grafik kütüphanesidir. Bu kütüphaneyle çizgi grafikleri, scatter grafikleri, alan grafikleri, çubuk grafikleri, hata çubuklu grafikler, kutu grafikleri, histogramlar, ısı haritaları, alt grafikler, çoklu eksenler ve 3B (WebGL tabanlı) grafikler gibi birçok farklı grafik türünü oluşturabilirsiniz. Plotly.R ücretsiz ve açık kaynaklıdır ve kaynak kodunu GitHub’da görüntüleyebilir, sorunları bildirebilir veya katkıda bulunabilirsiniz. Grafiklerin oluşturulması, arka planda Plotly.js JavaScript kütüphanesi kullanılarak gerçekleştirilir. Grafikler, R’de ya listeler olarak ya da plotly örnekleri olarak temsil edilebilir ve Plotly.js’ye geçmeden önce JavaScript Nesne Notasyonu (JSON) olarak metin olarak serileştirilir.

Herhangi bir plotly nesnesi için altta yatan veri yapısını görüntülemek için dput(fig) yöntemi kullanılabilir.

Basit Serpilme Diyagramı

Serpilme diyagramı, iki değişken arasındaki ilişkiyi görselleştirmek için kullanılan bir grafik türüdür. Bu grafik, her bir veri noktasını gösteren noktaların (scatter plot) koordinat düzlemindeki dağılımını gösterir.

Serpilme diyagramı, bir değişkenin diğer değişken üzerindeki etkisini göstermek için kullanılabilir.

Bu kod, R’deki plotly kütüphanesini kullanarak iris veri setindeki çanak yaprak uzunluğu (Sepal.Length) ve taç yaprak uzunluğu (Petal.Length) arasındaki ilişkiyi görselleştirmek için bir serpilme diyagramı (scatter plot) oluşturur.

plot_ly() fonksiyonu ile iris veri seti belirtilir ve x = ~Sepal.Length ve y = ~Petal.Length argümanlarıyla çanak yaprak uzunluğu ve taç yaprak uzunluğu değişkenleri sırasıyla x ve y eksenlerinde gösterilir. Oluşturulan grafiği görüntülemek için fig nesnesi oluşturulur ve çağrıldığında grafiği ekrana basmak için kullanılır.

fig <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Petal.Length,mode = "markers")

fig
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plotly.com/r/reference/#scatter

Serpilme Diyagramının Özelleştirilmesi

Bu kod, iris veri setindeki Sepal.Length ve Petal.Length değişkenlerini kullanarak bir stilize serpilme diyagramı oluşturur.

plot_ly() fonksiyonu kullanılarak, x eksenine Sepal.Length ve y eksenine Petal.Length atanır. Ayrıca, noktaların boyutu, rengi ve kenarlık kalınlığı gibi özelliklerini belirlemek için marker argümanı kullanılır.

Daha sonra, layout() fonksiyonu kullanılarak grafiğin başlığı ve x/y eksenlerinin görünümü ayarlanır. yaxis ve xaxis argümanlarına zeroline = FALSE atanarak, her iki eksenin de sıfır çizgisinin kaldırılması sağlanır.

Son olarak, fig değişkenine layout özellikleri eklenir ve grafik görüntülenir.

fig <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Petal.Length,
               marker = list(size = 10,
                             color = 'green',
                             line = list(color = 'orange',
                                         width = 2)))
fig <- fig %>% layout(title = 'Özelleştirilmiş Serpilme Diyagramı',
         yaxis = list(zeroline = FALSE),
         xaxis = list(zeroline = FALSE))

fig
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plotly.com/r/reference/#scatter
## No scatter mode specifed:
##   Setting the mode to markers
##   Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode

Nokta,Çizgi ve Serpilme Diyagramının Aynı Grafikte Gösterilmesi

Bu kod, iris veri setindeki Sepal.Length, Petal.Length ve Sepal.Width değişkenlerini kullanarak bir çizgi ve nokta serileri içeren bir çizgi/nokta diyagramı oluşturur.

İlk olarak, plot_ly() fonksiyonu kullanılarak x eksenine 1’den 150’ye kadar sayılar atanır. Bu, her bir çizgi/nokta serisi için x koordinatları sağlayacak bir aralık oluşturur.

Daha sonra, add_trace() fonksiyonu kullanılarak, çizgi/nokta serileri tek tek eklenir. Her bir seri için y argümanına ilgili değişken atanır ve name argümanı ile bir etiket verilir. mode argümanı, her bir serinin nasıl görüntüleneceğini belirler.

İlk add_trace() işlevi, yalnızca bir çizgi serisi ekler (mode = "lines"), ikinci add_trace() işlevi, hem bir çizgi hem de bir nokta serisi ekler (mode = "lines+markers"), ve son add_trace() işlevi yalnızca bir nokta serisi ekler (mode = "markers").

Son olarak, fig değişkenine eklenen tüm serilerle birlikte, plot_ly() fonksiyonu tarafından oluşturulan bir çizgi/nokta diyagramı oluşturulur ve görüntülenir.

fig <- plot_ly(iris, x = c(1:150))
fig <- fig %>% add_trace(y=~iris$Sepal.Length,name="Sepal Length",mode="lines")
fig <- fig %>% add_trace(y=~iris$Petal.Length,name="Petal Length",mode="lines+markers")
fig <- fig %>% add_trace(y=~iris$Sepal.Width,name="Sepal Width",mode="markers")
fig
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plotly.com/r/reference/#scatter
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plotly.com/r/reference/#scatter
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plotly.com/r/reference/#scatter

Gruplama Yapılarak Kategorik Değişkenlerin Sınıflandırıldığı Serpilme Diyagramı


Bu kod, iris veri setindeki Sepal.Length ve Petal.Length değişkenlerini kullanarak, her bir gözlem için x ve y koordinatlarını oluşturur. color argümanı kullanılarak, her bir gözlem Species değişkenine göre renklendirilir.

Böylece, her bir gözlem verisi x ve y koordinatlarına göre görselleştirilir ve ayrıca Species değişkeninin değerine göre renklendirilir.

fig <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Petal.Length, color = ~Species,
colors = "Set1")
fig
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plotly.com/r/reference/#scatter
## No scatter mode specifed:
##   Setting the mode to markers
##   Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode

Çizgi Grafikleri

Çizgi grafikleri, zaman serilerini ve değişkenler arasındaki ilişkileri görselleştirmek için kullanılan bir grafik türüdür. Bu grafikler, bir veya daha fazla değişkenin zaman içindeki değişimini veya bir değişkenin başka bir değişkene göre değişimini göstermek için kullanılabilir.

Çizgi grafikleri, birçok farklı disiplinde kullanılır. Örneğin, finansal piyasalardaki hisse senedi fiyatları, endeksler ve döviz kurları gibi verilerin takibinde, bir değişkenin zamana göre nasıl değiştiğini izlemek için kullanılır. Ayrıca meteorolojide, hava sıcaklığı, nem oranı, rüzgar hızı ve yağış miktarı gibi verilerin takibinde kullanılır.

Çizgi grafikleri, bir değişkenin zamana göre nasıl değiştiğini veya bir değişkenin diğer bir değişkene göre nasıl değiştiğini gösterdiği için, veri analizinde çok yararlıdır. Bu grafikler, veriler arasındaki ilişkileri ve trendleri gösterdiği için, gelecekteki eğilimleri tahmin etmek için de kullanılabilir.

Bu kod, diamonds veri setindeki cut değişkenine göre fiyatın yoğunluk tahminini hesaplar ve her bir kesim için yoğunluk tahmin eğrilerini oluşturur. Daha sonra, oluşturulan veri çerçevesi kullanılarak plot_ly fonksiyonu ile bir çizgi grafiği oluşturulur. Her bir yoğunluk tahmin eğrisi ayrı bir renk ile kodlanır ve add_lines işlevi kullanılarak grafiğe eklenir. Bu grafik, farklı kesimlerin fiyat dağılımının yoğunluğunu karşılaştırmak için kullanılabilir.

dens <- with(diamonds, tapply(price, INDEX = cut, density))
df <- data.frame(
  x = unlist(lapply(dens, "[[", "x")),
  y = unlist(lapply(dens, "[[", "y")),
  cut = rep(names(dens), each = length(dens[[1]]$x))
)

fig <- plot_ly(df, x = ~x, y = ~y, color = ~cut) 
fig <- fig %>% add_lines()

fig

Bar(Sütun) Grafikleri

Bar (sütun) grafikleri, kategorik verileri görselleştirmek için kullanılan bir grafik türüdür. Her bir kategoriye ait veriler sütunlar halinde temsil edilir ve sütunların yüksekliği, kategoriye ait veri değerini temsil eder.

Örneğin, bir şirketin farklı bölümlerindeki çalışan sayılarını göstermek için bar grafikleri kullanılabilir. X ekseninde bölümler, Y ekseninde ise çalışan sayısı yer alır. Her bir bölüme ait çalışan sayısı, sütunların yüksekliği ile gösterilir. Bu sayede farklı bölümler arasındaki çalışan sayılarındaki farklılıklar daha kolay bir şekilde görülebilir.

Bar grafikleri ayrıca, farklı zaman aralıklarında elde edilen verilerin karşılaştırılması için de kullanılabilir. Örneğin, bir ürünün farklı yıllardaki satış rakamlarını göstermek için bar grafikleri kullanılabilir. Bu sayede, ürünün satış performansındaki değişimlerin yanı sıra farklı yıllar arasındaki satış farklılıkları da görülebilir.

# Veri seti oluşturma
city <- c("New York", "London", "Tokyo", "Paris")
sales <- c(80, 56, 45, 67)
data <- data.frame(city, sales)

# Sütun grafiği oluşturma
fig <- plot_ly(data, x = ~city, y = ~sales, type = "bar", name = "Total Sales")

# Grafiği görselleştirme
fig <- fig %>% layout(title = "Total Sales by City",
                      xaxis = list(title = "City"),
                      yaxis = list(title = "Total Sales"))

fig

Gruplandırılmış Bar Grafiği

Hayvanlar <- c("Zürafa", "Orangutan", "Maymun")
İstanbul_Hayvanat_Bahçesi <- c(20, 14, 23)
Ankara_Hayvanat_Bahçesi <- c(12, 18, 29)
data <- data.frame(Hayvanlar, İstanbul_Hayvanat_Bahçesi, Ankara_Hayvanat_Bahçesi)

fig <- plot_ly(data, x = ~Hayvanlar, y = ~İstanbul_Hayvanat_Bahçesi, type = 'bar', name = 'Ankara_Hayvanat_Bahçesi')
fig <- fig %>% add_trace(y = ~Ankara_Hayvanat_Bahçesi, name = 'İstanbul_Hayvanat_Bahçesi')
fig <- fig %>% layout(yaxis = list(title = 'Count'), barmode = 'group')

fig
fig <- diamonds
fig <- fig %>% count(cut, clarity)
fig <- fig %>% plot_ly(x = ~cut, y = ~n, color = ~clarity)

fig
## No trace type specified:
##   Based on info supplied, a 'bar' trace seems appropriate.
##   Read more about this trace type -> https://plotly.com/r/reference/#bar

Pasta Grafiği


Pasta grafiği (Pie chart) bir veri setindeki farklı kategorilerin oransal olarak ne kadar yer kapladığını görselleştirmek için kullanılan bir grafik türüdür. Genellikle yüzde veya frekans oranlarını göstermek için tercih edilir.

Pasta grafiği, veri setindeki farklı kategorilerin büyüklüklerine göre kesitlere ayrılarak oluşturulur. Kesitlerin alanları, kategorinin toplam veri setindeki oranına göre belirlenir. Pasta grafiği, genellikle veri setindeki kategorilerin sayısı az olduğunda kullanılır. Fazla kategorilerin olduğu durumlarda okunması ve yorumlanması zor hale gelebilir.

Örneğin, bir marketin günlük satışlarında hangi ürünlerin ne kadar satıldığını göstermek için pasta grafiği kullanılabilir. Bu şekilde, ürünlerin satışlardaki oranları hakkında görsel bir anlayış elde edilebilir.

set.seed(123)
grades <- sample(c("AA", "BA", "BB", "CB", "CC", "DC", "DD", "FD", "FF"), size = 50, replace = TRUE)
grades_table <- table(grades)
grades_perc <- round(prop.table(grades_table) * 100, 1)
library(plotly)

colors <- c('#3366CC','#DC3912','#FF9900','#109618','#990099','#0099C6','#DD4477','#66AA00','#B82E2E')

fig <- plot_ly(labels = names(grades_table), values = grades_table, type = "pie", 
                text = paste0(names(grades_table), "<br>", grades_perc, "%"), 
                hoverinfo = "text", marker = list(colors = colors))

fig <- fig %>% layout(title = "Öğrenci Not Dağılımı", showlegend = FALSE)
fig

Köpük Grafiği

Köpük grafiği (bubble chart), x ve y eksenlerindeki verilerin yanı sıra, her bir noktanın boyutunu da belirten bir veri görselleştirme yöntemidir. Bu grafik türünde her bir nokta, x ve y eksenlerindeki konumuna ek olarak, üçüncü bir değişkene göre farklı boyutlarda gösterilir. Genellikle, noktaların boyutları sayısal bir değişkene karşılık gelir ve noktaların büyüklüğü, bu değişkendeki değerlerin büyüklüğüne göre artar veya azalır.

Plotly’de köpük grafiği oluşturmak için plot_ly() fonksiyonunu kullanarak type = "scatter" ve mode = "markers" argümanlarını kullanabilirsiniz. Ardından, her bir noktanın boyutunu belirleyen size argümanını kullanarak her bir noktanın boyutunu ayarlayabilirsiniz.

Örnek bir plotly köpük grafiği oluşturmak için şu kodu kullanabilirsiniz:

Bu kod, x ve y eksenleri için verileri içeren bir veri çerçevesi oluşturur ve her bir noktanın boyutunu belirleyen size değişkenini de içerir. Ardından, plot_ly() fonksiyonu kullanılarak bu veri çerçevesi ve type = "scatter" ve mode = "markers" argümanları kullanılarak köpük grafiği oluşturulur. Noktaların boyutlarını ayarlamak için marker argümanı kullanılarak size ve sizemode ayarları belirlenir. Son olarak, layout() fonksiyonu kullanılarak grafiğin başlığı ve eksen etiketleri belirlenir.

library(plotly)

data <- data.frame(
  x = c(1, 2, 3, 4, 5),
  y = c(10, 20, 30, 40, 50),
  size = c(5, 10, 15, 20, 25)
)

fig <- plot_ly(data, x = ~x, y = ~y, type = "scatter", mode = "markers",
               marker = list(size = ~size, sizemode = "diameter"))

fig <- fig %>% layout(title = "Örnek Köpük Grafiği",
                      xaxis = list(title = "X Ekseni"),
                      yaxis = list(title = "Y Ekseni"))

fig

Box (Kutu) Grafiği

Boxplot (Kutu grafiği), veri setinin çeyreklerini, medyanı ve aykırı değerleri görselleştirmek için kullanılan bir grafik türüdür. Kutu grafiği, minimum ve maksimum değerleri, ilk çeyrek (Q1) ve üçüncü çeyrek (Q3) arasındaki aralığı ve medyanı (Q2) gösterir. Ayrıca, kutu grafiği üzerinde aykırı değerler (outliers) de görüntülenebilir.

Bu kod, farklı çeyrek yöntemlerinin (linear, inclusive, exclusive) kutu plotu grafiği üzerinde nasıl farklı sonuçlar üretebileceğini gösterir. Veri olarak 1’den 5’e kadar olan sayıların üç farklı çeyrek yöntemi ile hesaplanan kutu plotları üretilir. plot_ly() işlevi, “box” tipi kutu plotu grafiği için kullanılır. add_trace() işlevi, her bir kutu plotu grafiği için bir iz eklemek için kullanılır. layout() işlevi, grafiğin başlığını ayarlamak için kullanılır.

fig <- plot_ly(y = list(1,2,3,4,5), type = "box", quartilemethod="linear", name="Linear Quartile Mode")
fig <- fig %>% add_trace(y = list(1,2,3,4,5), quartilemethod="inclusive", name="Inclusive Quartile Mode")
fig <- fig %>% add_trace(y = list(1,2,3,4,5), quartilemethod="exclusive", name="Exclusive Quartile Mode")
fig <- fig %>% layout(title = "Modifying The Algorithm For Computing Quartiles")

fig
fig <- plot_ly(ggplot2::diamonds, y = ~price, color = ~cut, type = "box")
fig
fig <- plot_ly(ggplot2::diamonds, x = ~cut, y = ~price, color = ~clarity, type = "box")
fig <- fig %>% layout(boxmode = "group")

fig
## Warning: 'layout' objects don't have these attributes: 'boxmode'
## Valid attributes include:
## '_deprecated', 'activeshape', 'annotations', 'autosize', 'autotypenumbers', 'calendar', 'clickmode', 'coloraxis', 'colorscale', 'colorway', 'computed', 'datarevision', 'dragmode', 'editrevision', 'editType', 'font', 'geo', 'grid', 'height', 'hidesources', 'hoverdistance', 'hoverlabel', 'hovermode', 'images', 'legend', 'mapbox', 'margin', 'meta', 'metasrc', 'modebar', 'newshape', 'paper_bgcolor', 'plot_bgcolor', 'polar', 'scene', 'selectdirection', 'selectionrevision', 'separators', 'shapes', 'showlegend', 'sliders', 'smith', 'spikedistance', 'template', 'ternary', 'title', 'transition', 'uirevision', 'uniformtext', 'updatemenus', 'width', 'xaxis', 'yaxis', 'barmode', 'bargap', 'mapType'

Histogram

Histogram, veri dağılımının görselleştirilmesinde sık kullanılan bir grafik türüdür. Bu grafik türü, veri setindeki ölçümlerin frekans dağılımını göstermek için kullanılır. X ekseninde genellikle veri aralığı belirtilirken, y ekseninde ise o aralıktaki gözlem sayısı veya gözlem yüzdesi gösterilir.

Histogram, özellikle niceliksel verilerin incelenmesinde kullanılır. Örneğin, bir sınıfın öğrencilerinin notlarından oluşan bir veri setindeki notların dağılımını incelemek için histogram kullanılabilir.

Plotly’de histogram oluşturmak için, plot_ly() fonksiyonu kullanılır ve type parametresi “histogram” olarak belirlenir. Veri seti, x parametresi olarak belirtilir. Ayrıca, nbins parametresi ile de histogramda kullanılacak kutu sayısı belirlenebilir.

Örnek bir kodda, iris veri setindeki Sepal Length ölçümlerinin histogramı aşağıdaki gibi oluşturulabilir:

library(plotly)

fig <- plot_ly(data = iris, x = ~Sepal.Length, type = "histogram", nbinsx = 20)
fig <- fig %>% layout(title = "Sepal Length Dağılımı")
fig

Bu kod, iris veri setindeki Sepal Length ölçümlerinin 20 kutulu bir histogramını çizer. X ekseninde ölçüm aralığı ve y ekseninde o aralıktaki gözlem sayısı gösterilir. Grafik başlığı “Sepal Length Distribution” olarak belirlenmiştir.

# Örnek veri seti oluşturma
set.seed(123)
x <- rnorm(1000, mean = 10, sd = 2)

# Histogram oluşturma
fig <- plot_ly(x = x, type = "histogram", 
               xbins = list(start = min(x), end = max(x), size = 0.5),
               marker = list(color = "blue", line = list(color = "black", width = 1)),
               opacity = 0.7)

# Grafik düzenleme
fig <- fig %>% layout(title = "Normal Dağılım", 
                      xaxis = list(title = "X"), 
                      yaxis = list(title = "Frequency"))

# Grafik görüntüleme
fig

Bu örnekte, rnorm fonksiyonu kullanılarak normal bir dağılım oluşturuldu ve oluşturulan veri seti plot_ly fonksiyonu kullanılarak histograma dönüştürüldü. Histogramın çizgi rengi ve kalınlığı marker parametresi kullanılarak ayarlanırken, şeffaflık opacity parametresi ile kontrol edildi. Son olarak, layout fonksiyonu kullanılarak grafik başlığı ve eksen etiketleri belirtildi ve grafik görüntülendi.

Bindirilmiş(Overvalid) Histogram

Bu kod R’da Plotly kütüphanesi kullanılarak iki normal dağılıma ait verilerin histogramlarını aynı grafik üzerinde bindirir ve barmode argümanı overlay olarak ayarlandığından histogramların birbirleri üzerine bindirilmesini sağlar. alpha argümanı ise histogramların şeffaflığını belirler.

fig <- plot_ly(alpha = 0.6)
fig <- fig %>% add_histogram(x = ~rnorm(500))
fig <- fig %>% add_histogram(x = ~rnorm(500) + 1)
fig <- fig %>% layout(barmode = "overlay")

fig
fig <- plot_ly(alpha = 0.6)
fig <- fig %>% add_histogram(x = ~rnorm(500))
fig <- fig %>% add_histogram(x = ~rnorm(500) + 1)
fig <- fig %>% layout(barmode = "stack")

fig

Violin Grafikleri

Violin plot, veri dağılımlarının şeklini görselleştirmek için kullanılan bir tür grafiktir. Kutu grafiği gibi, temel istatistikleri göstermekle birlikte, verilerin yoğunluğunu da gösterir. Ancak kutu grafiği yerine, bir çekirdek yoğunluğu grafiği kullanılır ve veri yoğunluğunu yansıtmak için ayna simetrik olarak yansıtılmış bir çift violine benzer şekilde çizilir. Violin plot, özellikle büyük veri setlerindeki veri dağılımlarını daha iyi anlamak için kullanışlıdır.

Plotly ile violin plot çizmek için plot_ly() ve add_violin() fonksiyonları kullanılabilir. Veri setinin sayısal sütunlarının belirtilmesi ve gerektiğinde gruplandırılması gerekir. Ayrıca, violin plotun görünümünü özelleştirmek için bir dizi ayar kullanılabilir, örneğin kemanın rengi, genişliği, kenar rengi vb.

Örnek bir violin plot oluşturma kodu aşağıdaki gibidir:

# iris veri seti
fig <- plot_ly(data = iris, y = ~Petal.Width, x = ~Species, type = "violin", box = list(visible = TRUE),
                points = "all", jitter = 0.05, spanmode = "soft", scalemode = "width",
                marker = list(size = 3, color = "#6baed6"), line = list(color = "#1f78b4"))

fig <- fig %>% layout(title = "Petal Width by Species",
                      xaxis = list(title = ""),
                      yaxis = list(title = "Petal Width"))

fig

Contour Plots

Contour Plotlar, üç boyutlu bir yüzeyin eşit değerlerini (konturlarını) görselleştirmek için kullanılan bir tekniktir. Bu grafik türü, bir iki boyutlu histogram ile aynı bilgiyi sağlar, ancak daha yumuşak bir görünüm sunar ve verilerin üç boyutlu yüzeylerini daha iyi anlamamıza yardımcı olur.

Plotly’de contour plotlar, 3D yüzey verilerini göstermek için contour veya contour3d fonksiyonları kullanılarak oluşturulabilir.

Örnek olarak, iris veri setindeki Sepal Length ve Sepal Width değişkenleri arasındaki ilişkiyi gösteren bir contour plot oluşturalım:

fig <- plot_ly(z = ~outer(iris$Sepal.Length, iris$Sepal.Width, FUN = Vectorize(function(x,y) dnorm(sqrt(x^2 + y^2), 0, 0.5))), type = "contour")
fig <- fig %>% layout(title = "Sepal Length vs Sepal Width", xaxis = list(title = "Sepal Width"), yaxis = list(title = "Sepal Length"))

fig
x <- rnorm(200)
y <- rnorm(200)
s <- subplot(
  plot_ly(x = x, type = "histogram"),
  plotly_empty(),
  plot_ly(x = x, y = y, type = "histogram2dcontour"),
  plot_ly(y = y, type = "histogram"),
  nrows = 2, heights = c(0.2, 0.8), widths = c(0.8, 0.2), margin = 0,
  shareX = TRUE, shareY = TRUE, titleX = FALSE, titleY = FALSE
)
## Warning: No trace type specified and no positional attributes specified
## No trace type specified:
##   Based on info supplied, a 'scatter' trace seems appropriate.
##   Read more about this trace type -> https://plotly.com/r/reference/#scatter
## No scatter mode specifed:
##   Setting the mode to markers
##   Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
fig <- layout(s, showlegend = FALSE)

fig

Isı Haritaları

Isı haritaları, 2D bir düzlem üzerindeki verilerin renk skalası ile gösterildiği bir veri görselleştirme tekniğidir. Genellikle, bir matris şeklindeki verilerin görselleştirilmesinde kullanılır. Bu teknikte, her bir hücredeki veri değeri, renk skalasındaki bir renk tonuna karşılık gelir. Böylece, hücrelerin renkleri, verilerin yoğunluklarına göre değişir ve görsel olarak anlamlı bir yapı elde edilir.


Bu kod, 3 satır ve 3 sütundan oluşan rastgele sayılarla doldurulmuş bir matris oluşturur ve bu matrisi ısı haritası olarak plotly’de gösterir. Isı haritası, x ve y eksenlerindeki kategorik değişkenlere bağlı olarak z eksenindeki sayısal verilerin görselleştirilmesini sağlar. Bu örnekte, x ve y eksenleri sırasıyla “a”, “b” ve “c”, “d”, “e” ve “f” olarak etiketlenmiştir.

m <- matrix(rnorm(9), nrow = 3, ncol = 3)
fig <- plot_ly(
    x = c("a", "b", "c"), y = c("d", "e", "f"),
    z = m, type = "heatmap"
)

fig