Verilerin grafik olarak gösterilmesinde ki amacımız elimizde ki verinin Normal Dağılıma sahip olup olmadığına bir göz atmak olabilir. Bunun için kullanacağımız Grafiksel yöntemler dağılımın normal olup olmadığına yönelik hızlı bir fikir edinmeye yardımcı olacaktır. Bir verinin dağılımını tespit etmek için yaygın olarak 4 farklı grafik tipi kullanılmaktadır: Histogram, Kutu grafiği (Boxplot), Q-Q grafiği (Quantile-Quantile plot) ve Kernel yoğunluk grafiği (KDEPlot). Grafiksel yöntemler haricinde ikinci seçenek olarak istatistiksel olarak verinin normal dağılım gösterip göstermediğine bakmak için normallik testlerine de ihtiyaç duyarız. Örnek: Shapiro-Wilk testi ve Kolmogorov-Smirnov testi. Ancak konumuz İstatistiksel Normallik testleri değil!
Grafiksel yöntemlerin verinin dağılımına hızlıca göz atmak haricinde veri görselleştirme, aykırı değerleri ve veri yayılımını görme gibi başka amaçları da var elbette, bu dersimizde bu grafiklerin ne amaçla kullanıldıklarını ayrıca R ve Python kodları yardımıyla nasıl çizileceklerine bakacağız.
1- Histogram
Histogram, veri görselleştirmede en yaygın kullanılan popüler bir grafik türüdür. Bir verinin dağılımını görselleştirmek için sıklıkla tercih edilir. Histogram sürekli değişkenler için çizilen bir grafik türüdür.
Bir değişken normal dağılıma sahip ise histogram zil (bell curve) şeklinde bir görünüme sahip olmalıdır. Normal bir dağılımda ortalama, medyan ve mod aynıdır.
Resim 1: "kusursuz" Normal Olasılık Dağılımı(Histogram ile gösterimi)
Python'da Histogram Grafiği Çizimi
Python’da histogram grafiği Pandas, Matplotlib veya Seaborn kütüphanelerinden herhangi biri kullanılarak çizilebilir.
A) Matplotlib İle Histogram Çizimi
import matplotlib.pyplot as plt
import numpy as np
x = [40, 52, 65, 15, 30, 100, 90, 55, 45, 74, 80, 36, 25, 65, 60, 40, 45, 78, 50, 70]
plt.hist(x)
plt.title('Sınav Notları | matplotlib')
plt.show()
Resim 2: Histogram Grafiği - Python Matplotlib
B) Pandas İle Histogram Çizimi
Pandas'da verinin dataFrame olması gerekir.
import pandas as pd
import matplotlib.pyplot as plt
# creating dataframe
dataFrame = pd.DataFrame({
"ad_soyad": [
'Ahsen', 'Cenk', 'Deniz', 'Selçuk', 'Mustafa', 'Ali', 'Mustafa', 'Kadir', 'Hasan', 'Mahmut', 'Mesut', 'Halime', 'Leyla', 'Hüseyin', 'Hakan', 'Zeynep', 'Fatma', 'Ekrem', 'Osman', 'Mehmet'
],
"sinav_notlari": [40, 52, 65, 15, 30, 100, 90, 55, 45, 74, 80, 36, 25, 65, 60, 40, 45, 78, 50, 70]
})
# plot a histogram for Registration Price column
plt.hist(dataFrame["sinav_notlari"])
plt.title('Sınav Notları | pandas')
plt.show()
Resim 3: Histogram Grafiği - Python Pandas
C) Seaborn İle Histogram Çizimi
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
# creating dataframe
dataFrame = pd.DataFrame({
"ad_soyad": [
'Ahsen', 'Cenk', 'Deniz', 'Selçuk', 'Mustafa', 'Ali', 'Mustafa', 'Kadir', 'Hasan', 'Mahmut', 'Mesut', 'Halime', 'Leyla', 'Hüseyin', 'Hakan', 'Zeynep', 'Fatma', 'Ekrem', 'Osman', 'Mehmet'
],
"sinav_notlari": [40, 52, 65, 15, 30, 100, 90, 55, 45, 74, 80, 36, 25, 65, 60, 40, 45, 78, 50, 70]
})
sns.histplot(dataFrame["sinav_notlari"])
plt.title('Sınav Notları | seaborn')
plt.show()
Resim 4: Histogram Grafiği - Python Seaborn
R'da Histogram Grafiği Çizimi
R ile histogram çizimi hist fonksiyonu aracılığı ile gerçekleştirilir. Fonksiyon ile ilgili parametrelerden bazıları şunlardır:
- x: Çizilmek istenen histogram için değer vektör
- breaks: Histogramın x ekseninde yer alan, ilgilenilen değişkenin gruplarının ayrılma noktalarını içeren vektör/hesaplayan bir fonksiyon/grup sayısını belirten tek bir değer
- freq: (mantıksal) Histogram True değeri için frekansları, False için olasılık yoğunluğu temsil eder.
- right: (mantıksal) True değeri için, sınıflar sağdan kapalı değer aralığı (a, b] olarak ele alınır.
- col: Sütun rengi belirlenir.
- labels: Sütunlar için ekstra etiket girdisi (Ör: Sütunların üstünde frekansların yazdırılması)
Örnek bir vektör içindeki verilerin Histogram grafiğini çizdirelim:
sinav_notlari<-c(40, 52, 65, 15, 30, 100, 90, 55, 45, 74, 80, 36, 25, 65, 60, 40, 45, 78, 50, 70)
hist(sinav_notlari, breaks = "Sturges", freq = NULL, right = TRUE, col = c('#5799c6'), main="Sınav Notları | R")
Resim 5: R Histogram Grafiği Çizimi
2- Line Graph
Zamana veya aynı mantıkla diğer değişkence düzenli bir şekilde değişimini gözlemlemek istediğimiz verileri görselleştirmekte line plot kullanıyoruz. line plot aslında en çok aşina olduğumuz görselleştirme çeşidi. Doların günden güne veya saatlik değişimi, korona virüs vakalarının günlük değişimi gibi zamana bağlı verilerin sunumunda ilk başvurulan yöntem olarak karşımıza çıkıyor.
Bu şekilde odaklandığımız konunun trendini, tepe ve dip noktalarını ve kritik noktaların oluştuğu tarihleri gözlememesi/okuması çok çok kolaylaşıyor.
Python'da Line Graph Çizimi
import matplotlib.pyplot as plt
Year = [1920,1930,1940,1950,1960,1970,1980,1990,2000,2010]
Unemployment_Rate = [9.8,12,8,7.2,6.9,7,6.5,6.2,5.5,6.3]
plt.plot(Year, Unemployment_Rate)
plt.title('Unemployment Rate Vs Year')
plt.xlabel('Year')
plt.ylabel('Unemployment Rate')
plt.show()
Resim 6: Python'da Line Graph Çizimi
R'da Line Graph Çizimi
# Create the data for the chart.
v <- c(17, 25, 38, 13, 41)
# Plot the bar chart.
plot(v, type = "o", col = "green",
xlab = "Month", ylab = "Article Written",
main = "Article Written chart")
Resim 7: R'da Line Graph Çizimi
3- Bar Graph(Sütun Grafiği)
Çubuk grafik, kategorik verileri, temsil ettikleri değerlerle orantılı yükseklik veya uzunluklara sahip dikdörtgen çubuklarla sunan resimsel bir veri temsilidir. Başka bir deyişle, veri kümesinin resimsel temsilidir. Bu veri setleri, uzunluğu veya yüksekliği temsil eden değişkenlerin sayısal değerlerini içerir.
Python'da Bar Graph(Sütun Grafiği) Çizimi
import numpy as np
import matplotlib.pyplot as plt
# creating the dataset
data = {'C': 20, 'C++': 15, 'Java': 30,
'Python': 35}
courses = list(data.keys())
values = list(data.values())
fig = plt.figure(figsize=(10, 5))
# creating the bar plot
plt.bar(courses, values, color='maroon',
width=0.4)
plt.xlabel("Courses offered")
plt.ylabel("No. of students enrolled")
plt.title("Students enrolled in different courses")
plt.show()
Resim 8: Python'da Bar Graph(Sütun Grafiği) Çizimi
R'da Bar Graph(Sütun Grafiği) Çizimi
# Create the data for the chart
A <- c(17, 2, 8, 13, 1, 22)
B <- c("Jan", "feb", "Mar", "Apr", "May", "Jun")
# Plot the bar chart
barplot(A, names.arg = B, xlab ="Month",
ylab ="Articles", col ="green",
main ="GeeksforGeeks-Article chart")
Resim 9: R'da Bar Graph(Sütun Grafiği) Çizimi
4- Pie Chart
Eğer kategorik değişkenlerimizin total grup içerisindeki yüzdesel dağılımını görmek istiyorsak pie chart en iyi seçim olacaktır.
Python'da Pie Chart Grafiği Çizimi
import matplotlib.pyplot as plt
labels='Tasks Pending','Tasks Ongoing','Tasks Completed'
sizes=[300,500,700]
explode = (0.1,0,0)
fig1,ax1 = plt.subplots()
ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True, startangle=90)
plt.show()
Resim 10: Python'da Pie Chart Grafiği Çizimi
Python'da Pie Chart Grafiği Çizimi-2
import matplotlib.pyplot as plt
import pandas as pd
data = {'Tasks': [300,500,700]}
df = pd.DataFrame(data,columns=['Tasks'],index = ['Tasks Pending','Tasks Ongoing','Tasks Completed'])
df.plot.pie(y='Tasks',figsize=(7, 5),autopct='%1.1f%%', startangle=90)
plt.show()
Resim 11: Python'da Pie Chart Grafiği Çizimi-2
R'da Pie Chart Grafiği Çizimi
# Load ggplot2
library(ggplot2)
# Create Data
data <- data.frame(
group=c('Drosophila melanogaster','Haemophilus influenzae','Saccharomyces cerevisiae','Caenorhabditis elegans','Mus musculus','Rattus norvegicus','Escherichia coli'),
value=c(10.8,31.3,15.2,15.7,12.0,13.0,2.0)
)
# Basic piechart
ggplot(data, aes(x="", y=value, fill=group)) +
geom_bar(stat="identity", width=1) +
coord_polar("y", start=0)
Resim 12: R'da Pie Chart Grafiği Çizimi
5- Donut Chart
Donut grafikleri, Pasta Grafiklerinin merkez alanı kesilerek değiştirilmiş versiyonudur. Dilimler arasındaki orantı alanını karşılaştırmaya daha fazla odaklanan Pasta grafik yerine, bilgiyi en etkili şekilde temsil etmek için yayların alanının kullanımıyla daha fazla ilgilenir. Donut grafikler alan açısından daha verimlidir çünkü donut grafiklerin içindeki boş alan donut grafik hakkında bazı ek bilgileri görüntülemek için kullanılabilir.
Bir Donut grafiği olabilmesi için mutlaka bir Pasta grafiği olması gerekir. Pasta grafiğine bakarsak, grafiğin merkezine odaklanırız. Öte yandan Donut grafikleri, dilimin boyutunu veya alanını karşılaştırma ihtiyacını ortadan kaldırır ve odağı yayın uzunluğuna kaydırır, bu da ölçülmesi kolaydır.
Python Donut Chart Çizimi
import matplotlib.pyplot as plt
# Setting labels for items in Chart
Employee = ['Roshni', 'Shyam', 'Priyanshi',
'Harshit', 'Anmol']
# Setting size in Chart based on
# given values
Salary = [40000, 50000, 70000, 54000, 44000]
# colors
colors = ['#FF0000', '#0000FF', '#FFFF00',
'#ADFF2F', '#FFA500']
# explosion
explode = (0.05, 0.05, 0.05, 0.05, 0.05)
# Pie Chart
plt.pie(Salary, colors=colors, labels=Employee,
autopct='%1.1f%%', pctdistance=0.85,
explode=explode)
# draw circle
centre_circle = plt.Circle((0, 0), 0.70, fc='white')
fig = plt.gcf()
# Adding Circle in Pie chart
fig.gca().add_artist(centre_circle)
# Adding Title of chart
plt.title('Employee Salary Details')
# Displaying Chart
plt.show()
Resim 13: Python Donut Chart Çizimi
R'da Donut Chart Çizimi
R'da Pie-Donut chart grafiği çizmek için verinin dataFrame olması gerekir.
# Load ggplot2
library(ggplot2)
type <- c("O+", "A+", "B+", "AB+", "O-", "A-", "B-", "AB-")
# variable 2
proportion <- c(33.2, 41.6, 6.8, 3.4, 5.8, 7.4, 1.2, 0.6)
# dataframe
df <- data.frame(type, proportion)
ggplot(df, aes(x=2, y=proportion, fill=type))+
geom_col(width=1) +
xlim(0.5, 2.5) +
scale_fill_viridis_d() +
coord_polar("y")
Resim 14: R'da Donut Chart Çizimi
6- Kutu grafiği (Boxplot)
Kutu grafiği (Boxplot), farklı grupları aynı grafik üzerinde karşılaştırma imkanı sunar. Adını şeklinden alan kutu grafiği veri setindeki çeyrekleri kullanarak verinin dağılımını görselleştirir. Görselleştirme için çeyreklik değerlerini kullandığı için veri setindeki aykırı değerlerden etkilenmez.
Veri kümeleri arasındaki benzerlik ya da farklılıkları görmek için kullanılır. Kutu-grafiği kullanılarak veri kümesinin:
- Konumu
- Yayılımı
- Çarpıklığı
- Kuyruk uzunluğu
- Aykırı değerleri
tespit edilebilmektedir. Veri setinin yayılımı ve konum değerlerinin yardımıyla verilerin dağılımı hakkında ipucu da vermektedir. Ayrıca, birden fazla veri seti olduğunda kutu grafikleri veri kümeleri arasındaki benzerlik ve farklılıkları görmek için kullanılır.
Resim 15: Kutu grafiği (Boxplot)
Python’da kutu grafiği (Boxplot)
Python’da kutu grafiği Matplotlib ve Seaborn kütüphanelerinden boxplot()
fonksiyonu yardımı ile çizdirilebilir.
A) Matplotlibİle (Boxplot) Çizimi
Aşağıdaki örnekte bir sınıftaki kız ve erkek öğrencilerin not ortalamalarını karşılaştırmak için grafik çizelim:
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
# creating dataframe
dataFrame = pd.DataFrame({
"cinsiyet": [
"E", "K", "K", "K", "E", "E", "K", "E", "K", "E", "K", "K", "E", "K"
],
"sinav_notlari": [25, 45, 45, 50, 60, 63, 69, 78, 78, 80, 84, 87, 100, 100]
})
dataFrame.boxplot( column =["sinav_notlari"], by="cinsiyet")
plt.title('Sınav Notları | Boxplot Matplotlib')
plt.show()
Resim 16: Python’da kutu grafiği (Boxplot) Çizimi | Matplotlib
B) Seaborn İle (Boxplot) Çizimi
Aşağıdaki örnekte bir sınıftaki kız ve erkek öğrencilerin not ortalamalarını karşılaştırmak için grafik çizelim:
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
# creating dataframe
dataFrame = pd.DataFrame({
"cinsiyet": [
"E", "K", "K", "K", "E", "E", "K", "E", "K", "E", "K", "K", "E", "K"
],
"sinav_notlari": [25, 45, 45, 50, 60, 63, 69, 78, 78, 80, 84, 87, 100, 100]
})
# Seaborn
sns.boxplot(data=dataFrame, x="cinsiyet", y="sinav_notlari")
plt.title('Sınav Notları | Boxplot Seaborn')
plt.show()
Resim 17: Python’da kutu grafiği (Boxplot) Çizimi | Seaborn
R’da kutu grafiği (Boxplot)
R’da kutu grafiği boxplot()
fonksiyonuyla oluşturulur. boxplot()
fonksiyonu ilk argüman olarak numerik bir vektör yahut veri setimizde yer alan sürekli bir değişken, ikinci argüman olarak genellikle factor tipinde kategorik bir değişkene ihtiyaç duymaktadır. İki değişken arasında İngilizce ’de tilde olarak adlandırılan “~”
işareti bulunmaktadır.
Aşağıdaki örnekte bir sınıftaki kız ve erkek öğrencilerin not ortalamalarını karşılaştırmak için grafik çizelim:
cinsiyet <- c("E", "K", "K", "K", "E", "E", "K", "E", "K", "E", "K", "K", "E", "K")
sinav_notlari<- c(25, 45, 45, 50, 60, 63, 69, 78, 78, 80, 84, 87, 100, 100)
# dataframe
df <- data.frame("Cinsiyet"=cinsiyet,"Sınav Notları"= sinav_notlari)
boxplot(sinav_notlari ~ cinsiyet, names = c("Erkek","Kız"), col=c("blue","pink"), vertical = TRUE, main = "Box Plot | R", data = df)
Resim 18: R’da kutu grafiği (Boxplot) Çizimi
7- Scatter Plot(Serpme Diyagramı)
Scatter Plot bize değişkenlerin korelasyonu hakkında bilgi sunar. Scatter Plot iki değişkenin arasındaki ilişkiyi ve birlikte değişimlerini gözlemlemede kullanılan bir veri görselleştirme tekniğidir. Eldeki gözlemlerde herhangi bir değişkenin aldığı değerin diğer değişkende karşılık geldiği değeri ya da aralarındaki örüntüyü/ilişkiyi gözlemleme amaçlı kullanılır.
Scatter plot değişkenler arasındaki korelasyon hakkında da bir öngörüde bulunmamızı sağlar. Bununla birlikte, eğer değişkenler arasında bilinen bir korelasyon var ise korelasyonu bozan (sapan değer şüphelisi) gözlemlere de odaklanmamızı, bu değerlerin dikkat çekmesini sağlar.
Python’da Scatter Plot Grafiği Çizimi
Python'da Scatter Plot çizmek için scatter()
metodunu kullanırız.
import matplotlib.pyplot as plt
x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]
plt.scatter(x, y)
plt.show()
Resim 19: Python’da Scatter Plot Grafiği Çizimi
R’da Scatter Plot Grafiği Çizimi
R'da Scatter Plot çizmek için plot()
metodunu kullanırız.
x <- c(5,7,8,7,2,17,2,9,4,11,12,9,6)
y <- c(99,86,87,88,111,86,103,87,94,78,77,85,86)
# Plot with main and axis titles
# Change point shape (pch = 19) and remove frame.
plot(x, y, main = "Main title",
xlab = "X axis title", ylab = "Y axis title",
pch = 19, frame = FALSE)
Resim 20: R’da Scatter Plot Grafiği Çizimi
Grafiğe Regression çizgisi eklemek için :
x <- c(5,7,8,7,2,17,2,9,4,11,12,9,6)
y <- c(99,86,87,88,111,86,103,87,94,78,77,85,86)
# Plot with main and axis titles
# Change point shape (pch = 19) and remove frame.
# Add regression line
plot(x, y, main = "Main title",
xlab = "X axis title", ylab = "Y axis title",
pch = 19, frame = FALSE)
abline(lm(y ~ x, data = mtcars), col = "blue")
Resim 21: R’da Scatter Plot Grafiği Regression Çizgisi
9- Frequency Polygon
Python'da Frequency Polygon Çizdirme
import matplotlib.pyplot as plt
x=[78 ,72, 69 ,81 ,63 ,67 ,65 ,75 ,79 ,74 ,71, 83 ,71 ,79 ,80 ,69 ]
a,bins,c=plt.hist(x,bins=7,histtype='step')
l=list(bins)
l.insert(0,0)
l.insert(len(bins)+1,bins[len(bins)-1])
mid=[]
for i in range(len(l)-1):
ele=(l[i]+l[i+1])/2
mid.append(ele)
x=list(a)
x.insert(0,0)
x.insert(len(a)+1,0)
plt.plot(mid,x,'go--')
plt.xlabel("Age")
plt.show()
Resim 22:Python'da Frequency Polygon Çizdirme
R'da Frequency Polygon Çizdirme
# Load ggplot2
library(ggplot2)
type <- c(19 , 20, 30, 35, 40, 45, 50, 60)
# variable 2
proportion <- c(2, 5, 7, 9, 11, 13, 15, 17)
# dataframe
df <- data.frame(type, proportion)
print(df)
ggplot(data = df) +
geom_histogram(mapping = aes(x = proportion, y = ..density..),
colour = "black", fill = "white", binwidth = 2.5) +
stat_function(fun = dnorm,
args = list(mean = mean(df$proportion, na.rm = TRUE),
sd = sd(df$proportion, na.rm = TRUE)),
colour = "red", size = 1) +
labs(x = "Şehirler arası yakıt\nperformansı", y = "Density")
Resim 23:R'da Frequency Polygon Çizdirme
10- Q-Q grafiği (Quantile-Quantile plot)
Verinin dağılımını anlamaya yönelik bir diğer grafiksel yöntem Q-Q grafiğidir. Q-Q grafiği ile iki olasılık dağılımı (verinin dağılımı ile istenilen olasılık dağılımı) birbiri ile karşılaştırılır. Eğer iki dağılım birbirine eşit ise gözlemler Q-Q grafiğinde bulunan 45 derecelik açıyla çizilmiş düz bir çizgi üzerinde seyreder.
Resim 24:Q-Q grafiği (Quantile-Quantile plot)
Gözlem sayısı fazla olan veri setlerinde daha etkilidir. Gözlem sayısının az olduğu veri setlerinde yanıltıcı olabilir.
Python’da Q-Q grafiği (Q-Q plot)
Python’da Q-Q grafiği çizebilmek için stats modülünden probplot()
fonksiyonu kullanılabilir.
stats.probplot(my_data, dist = "norm", plot = plt)
plt.title("Q-Q Grafiği")
plt.show()
Resim 25:Q-Q grafiği (Quantile-Quantile plot)
Q-Q grafiği ile değişkenimizin normal dağılıma göre kıyaslanması için "dist" parametresine "norm" yanıtını girdik.
Grafikte de histogramda gördüğümüze benzer bir sonuç var. "white_rating" değişkeni grafiğin üstünde ve altında bazı sapmaları olmasına rağmen normal dağılıma çok yakındır.
R’da Q-Q grafiği (Q-Q plot)
R’da Q-Q grafiği çizebilmek için qqnorm()
fonksiyonu kullanılabilir.
paketler<-c(40,43,45,46,46,47,48,48,48,48,48,48,50,50,50,51,51,51,51,52,52,52,53,54,54,54,54,55,56,59)
qqnorm(paketler)
Resim 26:R’da Q-Q grafiği (Q-Q plot)
Eğer istenilirse referans çizgisi eklenebilir:
paketler<-c(40,43,45,46,46,47,48,48,48,48,48,48,50,50,50,51,51,51,51,52,52,52,53,54,54,54,54,55,56,59)
qqline(paketler, col = "steelblue", lwd = 2)
Resim 27:R’da Q-Q grafiği (Q-Q plot) Referans Çizgisi
11- Kernel yoğunluk grafiği (KDEPlot)
Bir verinin dağılımını görselleştirebileceğimiz bir diğer grafik türü ise kernel yoğunluk grafiğidir (kernel density plot – kdeplot). Büyük veri setlerinde daha etkilidir. Dağılımın şeklini daha iyi bir şekilde belli eder.
Resim 28:Kernel yoğunluk grafiği (KDEPlot)
Python’da Kernel yoğunluk grafiği (kdeplot)
Python’da Kernel yoğunluk grafiği (kdeplot), Seaborn kütüphanesinden kdeplot()
fonksiyonu kullanılarak çizilebilir.
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
my_data = [25, 45, 45, 50, 60, 63, 69, 78, 78, 80, 84, 87, 100, 100]
sns.kdeplot(data = my_data)
plt.title('Sınav Notları | seaborn kdeplot')
plt.show()
Resim 29:Python Kernel yoğunluk grafiği (KDEPlot)
R’da Kernel yoğunluk grafiği (kdeplot)
sinav_notlari<- c(25, 45, 45, 50, 60, 63, 69, 78, 78, 80, 84, 87, 100, 100)
plot(density(sinav_notlari))
Resim 30:R 'da Kernel yoğunluk grafiği (KDEPlot)
12- Violin Plot
Violin (keman) grafiği verilerin dağılımını ve olasılık yoğunluğunu görselleştirmek için en efektif yöntemlerden birisidir.
Violin grafiği box plot ve KDE’nin kombinasyonundan doğmuştur. Box plot, görsel basitliği ve verilerdeki değerlerin nasıl dağıldığına ilişkin önemli ayrıntıları gizleme eğiliminde olduğundan, değişken değerlerinin dağılımının gösterilmesinde sınırları bulunmaktadır.
Resim 31:Violin Plot
Python Violin Plot Çizdirme
import matplotlib.pyplot as plt
import pandas as pd
data = {
"Matematik": [420, 380, 390],
"İngilizce": [50, 40, 45],
"Tarih": [390, 380, 42],
}
#load data into a DataFrame object:
df = pd.DataFrame(data)
# 3 violin grafiği tek alanda çizdiriyoruz
fig, (ax, ax2, ax3) = plt.subplots(ncols=3,figsize=(15, 5))
ax.violinplot(df.Matematik)
ax.set_title("Matematik")
ax2.violinplot(df.İngilizce)
ax2.set_title("İngilizce")
ax3.violinplot(df.Tarih)
ax3.set_title("Tarih")
plt.show()
Resim 32:Python'da Violin Plot Çizdirme
R Violin Plot Çizdirme
# install.packages("vioplot")
library("vioplot")
sinav_notlari <- c(40, 52, 65, 15, 30, 100, 90, 55, 45, 74, 80, 36, 25, 65, 60, 40, 45, 78, 50, 70)
vioplot(sinav_notlari,
col = 2, # Color of the area
rectCol = "red", # Color of the rectangle
lineCol = "white", # Color of the line
colMed = "green", # Pch symbol color
border = "black", # Color of the border of the violin
pchMed = 16, # Pch symbol for the median
plotCentre = "points") # If "line", plots a median line
Resim 33:R'da Violin Plot Çizdirme
Kaynaklar
- https://ravenfo.com/2021/07/11/normal-dagilim-python-normallik-testi/
- https://medium.com/datarunner/...........as%C4%B1-histogram-8381d12b85b9
- https://www.geeksforgeeks.org/donut-chart-using-matplotlib-in-python/
- https://biostats.w.uib.no/creating-a-donut-chart/
- https://datatofish.com/line-chart-python-matplotlib/
- https://www.geeksforgeeks.org/r-line-graphs/
- http://www.sthda.com/english/articles/32-r-graphics-essentials/133-plot-one-variable-frequency-graph-density-distribution-and-more/
- https://datatofish.com/plot-dataframe-pandas/
- https://teknoloji.org/seaborn-kutuphanesi-nedir-nasil-kullanilir/
- https://r-graph-gallery.com/boxplot.html