Matplotlib vs ggplot2: hangisini kullanmalısınız?
Tüm veri bilimindeki en popüler veri görselleştirme kitaplıklarından ikisi ggplot2 ve Matplotlib’dir .
R istatistiksel programlama dilinde ggplot2 kütüphanesi kullanılırken Python’da Matplotlib kullanılır.
Her iki kitaplık da son derece özelleştirilmiş veri görselleştirmeleri oluşturmanıza olanak tanısa da, ggplot2 genellikle Matplotlib’e kıyasla daha az kod satırıyla bunu yapmanıza olanak tanır.
Bu noktayı açıklamak için, her iki kitaplığı kullanarak aynı türde grafiklerin nasıl oluşturulacağını göstereceğiz.
Çizgi grafikler: ggplot2 ve Matplotlib
Aşağıdaki kod, ggplot2 kullanarak çizgi grafiğinin nasıl oluşturulacağını gösterir:
library (ggplot2) #create data frame df <- data. frame (day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), sales=c(2, 4, 5, 8, 6, 12, 15, 19, 15, 22)) #create line chart ggplot(df, aes(x=day, y=sales)) + geom_line(size= 1.2 , col=' purple ') + ggtitle(' Sales by Day ') + xlab(' Day ') + ylab(' Sales ')
Aşağıdaki kod, Matplotlib kullanılarak aynı çizgi grafiğinin nasıl oluşturulacağını gösterir:
import pandas as pd import matplotlib. pyplot as plt #createDataFrame df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ' sales ': [2, 4, 5, 8, 6, 12, 15, 19, 15, 22]}) #create line chart plt. plot (df. day , df. sales , color=' purple ') plt. title (' Sales by Day ', loc=' left ') plt. ylabel (' Sales ') plt. xlabel (' Day ')
Bu örnekte, her grafiği oluşturmak için gereken kod satırı sayısı ggplot2 ve Matplotlib arasında yaklaşık olarak aynıdır.
Dağılım grafikleri: ggplot2 ve Matplotlib
Aşağıdaki kod, ggplot2’de noktaların kategoriye göre renklendirildiği bir dağılım grafiğinin nasıl oluşturulacağını gösterir:
library (ggplot2) #create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), assists=c(1, 2, 2, 4, 5, 7, 8, 10), points=c(4, 6, 10, 8, 12, 15, 22, 28)) #create scatterplot ggplot(df, aes(x=assists, y=points)) + geom_point(aes(col=team), size= 3 )
Aşağıdaki kod, Matplotlib kullanılarak aynı dağılım grafiğinin nasıl oluşturulacağını gösterir:
import pandas as pd import matplotlib. pyplot as plt #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' assists ': [1, 2, 2, 4, 5, 7, 8, 10], ' points ': [4, 6, 10, 8, 12, 15, 22, 28]}) #define colors to use color_list = [] for x in df[' team ']: if x == ' A ': color_list. append (' #F8766D ') else : color_list. append (' #00BFC4 ') #create scatterplot plt. scatter (df. assists , df. points , c=color_list) plt. ylabel (' points ') plt. xlabel (' assists ')
Ggplot2 ile aynı çizimi oluşturmak için Matplotlib’de çok daha fazla kod satırı kullanmamız gerektiğini unutmayın.
Histogramlar: ggplot2 ve Matplotlib
Aşağıdaki kod ggplot2’de histogramın nasıl oluşturulacağını gösterir:
library (ggplot2) #create data frame df <- data. frame (x=c(2, 2, 4, 4, 4, 5, 5, 6, 7, 7, 8, 8, 10, 11, 11, 11, 12, 13, 14, 14)) #create scatterplot ggplot(df, aes(x=x)) + geom_histogram(bins= 6 , fill=' red ', color=' black ') + ggtitle(' My Histogram ')
Aşağıdaki kod Matplotlib kullanılarak benzer bir histogramın nasıl oluşturulacağını gösterir:
import pandas as pd import matplotlib. pyplot as plt #createDataFrame df = pd. DataFrame ({' x ': [2, 2, 4, 4, 4, 5, 5, 6, 7, 7, 8, 8, 10, 11, 11, 11, 12, 13, 14, 14]}) #create histogram plt. hist (df[' x '], bins= 6 , color=' red ', ec=' black ') plt. title (' My Histogram ', loc=' left ') plt. xlabel (' x ') plt. ylabel (' Count ')
Bir kez daha Matplotlib sürümü ggplot2’den daha fazla kod satırı gerektiriyor.
Çözüm
ggplot2 ve Matplotlib son derece özelleştirilebilir veri görselleştirmeleri oluşturmanıza olanak tanır, ancak ggplot2 daha az kod kullanma eğilimindedir.
Çoğunlukla ggplot2 ve Matplotlib arasındaki tercih, veri analizi için kullandığınız programlama diline bağlıdır.
Python kullanan kişiler, tek bir programlama dili kullanarak veri analizini yapabildikleri ve veri görselleştirmeleri oluşturabildikleri için Matplotlib’i kullanma eğilimindedirler.
Tersine, R kullanan kişiler ggplot2’yi kullanma eğilimindedir çünkü bu onların tüm veri analizini ve görselleştirmelerini tek bir programlama dilinde yapmalarına olanak tanır.