Matplotlib vs ggplot2: ما الذي يجب أن تستخدمه؟


اثنتان من مكتبات تصور البيانات الأكثر شيوعًا في جميع علوم البيانات هما ggplot2 و Matplotlib .

يتم استخدام مكتبة ggplot2 في لغة البرمجة الإحصائية R بينما يتم استخدام Matplotlib في لغة Python.

على الرغم من أن كلتا المكتبتين تسمح لك بإنشاء تصورات بيانات مخصصة للغاية، إلا أن ggplot2 يسمح لك عمومًا بالقيام بذلك باستخدام عدد أقل من أسطر التعليمات البرمجية مقارنة بـ Matplotlib.

لتوضيح هذه النقطة، سنوضح كيفية إنشاء نفس أنواع المخططات باستخدام كلتا المكتبتين.

المخططات الخطية: ggplot2 vs Matplotlib

يوضح التعليمة البرمجية التالية كيفية إنشاء مخطط خطي باستخدام ggplot2 :

 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 ')

ويوضح التعليمة البرمجية التالية كيفية إنشاء نفس المخطط الخطي باستخدام Matplotlib :

 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 ') 

في هذا المثال، عدد أسطر التعليمات البرمجية اللازمة لإنشاء كل قطعة أرض هو نفسه تقريبًا بين ggplot2 وMatplotlib.

Scatterplots: ggplot2 مقابل Matplotlib

يوضح التعليمة البرمجية التالية كيفية إنشاء مخطط مبعثر في ggplot2 حيث يتم تلوين النقاط حسب الفئة:

 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 ) 

ويوضح التعليمة البرمجية التالية كيفية إنشاء نفس مخطط التشتت باستخدام Matplotlib :

 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 ')

لاحظ أنه كان علينا استخدام العديد من أسطر التعليمات البرمجية في Matplotlib لإنشاء نفس المؤامرة مثل ggplot2.

الرسوم البيانية: ggplot2 vs Matplotlib

يوضح الكود التالي كيفية إنشاء رسم بياني في ggplot2 :

 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 ') 

ويوضح التعليمة البرمجية التالية كيفية إنشاء رسم بياني مماثل باستخدام Matplotlib :

 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 ') 

مرة أخرى، يتطلب إصدار Matplotlib أسطرًا من التعليمات البرمجية أكثر من ggplot2.

خاتمة

يتيح لك ggplot2 وMatplotlib إنشاء تصورات بيانات قابلة للتخصيص بدرجة كبيرة، ولكن يميل ggplot2 إلى استخدام تعليمات برمجية أقل.

غالبًا ما يعتمد التفضيل بين ggplot2 وMatplotlib ببساطة على لغة البرمجة التي تستخدمها لتحليل البيانات.

يميل الأشخاص الذين يستخدمون Python إلى استخدام Matplotlib لأنه يمكنهم إجراء تحليل البيانات وإنشاء تصورات للبيانات باستخدام لغة برمجة واحدة.

على العكس من ذلك، يميل الأشخاص الذين يستخدمون R إلى استخدام ggplot2 لأنه يسمح لهم بإجراء جميع تحليلات البيانات وتصوراتها في لغة برمجة واحدة.

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *