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 لأنه يسمح لهم بإجراء جميع تحليلات البيانات وتصوراتها في لغة برمجة واحدة.