كيفية رسم الرسوم البيانية حسب المجموعة في الباندا
يمكنك استخدام الطرق التالية لرسم الرسوم البيانية حسب المجموعة في DataFrame الباندا:
الطريقة الأولى: رسم الرسوم البيانية حسب المجموعة باستخدام مخططات متعددة
df[' values_var ']. hist (by=df[' group_var '])
الطريقة الثانية: رسم الرسوم البيانية حسب المجموعة باستخدام قطعة أرض واحدة
plt. hist (group1, alpha= 0.5 , label=' group1 ') plt. hist (group2, alpha= 0.5 , label=' group2 ') plt. hist (group3, alpha= 0.5 , label=' group3 ')
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع الباندا التالية DataFrame التي توضح النقاط التي سجلها لاعبو كرة السلة من ثلاثة فرق مختلفة:
import pandas as pd import numpy as np #make this example reproducible n.p. random . seeds (1) #createDataFrame df = pd. DataFrame ({' team ': np.repeat ([' A ',' B ',' C '], 100 ), ' points ': np. random . normal (loc= 20 , scale= 2 , size= 300 )}) #view head of DataFrame print ( df.head ()) team points 0 A 23.248691 1 A 18.776487 2 A 18.943656 3 A 17.854063 4 A 21.730815
مثال 1: رسم الرسوم البيانية حسب المجموعة باستخدام مخططات متعددة
يوضح الكود التالي كيفية إنشاء ثلاثة رسوم بيانية تعرض توزيع النقاط التي سجلها اللاعبون من كل فريق من الفرق الثلاثة:
#create histograms of points by team df[' points ']. hist (by=df[' team '])
يمكننا أيضًا استخدام الوسيط edgecolor لإضافة خطوط حافة إلى كل رسم بياني والوسيطة Figsize لزيادة حجم كل رسم بياني لتسهيل تصوره:
#create histograms of points by team df[' points ']. hist (by=df[' team '], edgecolor=' black ', figsize = ( 8 , 6 ))
مثال 2: رسم الرسوم البيانية حسب المجموعة باستخدام قطعة أرض واحدة
يوضح التعليمة البرمجية التالية كيفية إنشاء ثلاثة رسوم بيانية ووضعها جميعًا على نفس المخطط:
import matplotlib.pyplot as plt
#define points values by group
A = df. loc [df[' team '] == ' A ', ' points ']
B = df. loc [df[' team '] == ' B ', ' points ']
C = df. loc [df[' team '] == ' C ', ' points ']
#add three histograms to one plot
plt. hist (A, alpha= 0.5 , label=' A ')
plt. hist (B, alpha= 0.5 , label=' B ')
plt. hist (C, alpha= 0.5 , label=' C ')
#add plot title and axis labels
plt. title (' Points Distribution by Team ')
plt. xlabel (' Points ')
plt. ylabel (' Frequency ')
#add legend
plt. legend (title=' Team ')
#displayplot
plt. show ()
والنتيجة النهائية هي مؤامرة تعرض ثلاثة رسوم بيانية مكدسة فوق بعضها البعض.
ملاحظة : تحدد وسيطة ألفا شفافية كل رسم بياني. يمكن أن تتراوح هذه القيمة من 0 إلى 1. من خلال تعيين هذه القيمة على 0.5، يمكننا تصور كل رسم بياني متراكب بشكل أفضل.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إنشاء مخططات مشتركة أخرى في بايثون:
كيفية رسم خطوط متعددة في Matplotlib
كيفية إنشاء boxplot من Pandas DataFrame
كيفية رسم أعمدة Pandas متعددة على مخطط شريطي