"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تلوين المخططات المبعثرة حسب قيم الأعمدة في بايثون؟

كيفية تلوين المخططات المبعثرة حسب قيم الأعمدة في بايثون؟

تم النشر بتاريخ 2024-11-08
تصفح:818

How to Color Scatter Plots by Column Values in Python?

تلوين المخططات المبعثرة حسب قيم الأعمدة

في Python، توفر مكتبة Matplotlib عدة وسائل لتخصيص جماليات المخططات المبعثرة. إحدى المهام الشائعة هي تعيين الألوان بناءً على القيم في عمود معين.

Seaborn Integration

أحد الحلول هو الاستفادة من مكتبة Seaborn، التي تعتمد على Matplotlib. يقدم Seaborn وظائف عالية المستوى مثل sns.replot وsns.FacetGrid التي تسمح لك بسهولة تعيين مخططات مبعثرة على أعمدة محددة. من خلال تحديد معلمة hue، يمكنك تلوين النقاط وفقًا لعمود ثالث يحتوي على تسميات الفئات.

import seaborn as sns

sns.relplot(data=df, x='Weight (kg)', y='Height (cm)', hue='Gender')

مباشرة باستخدام Matplotlib

بدلاً من ذلك، يمكنك استخدام وظيفة plt.scatter الخاصة بـ Matplotlib مباشرةً لإنشاء مخططات مبعثرة وتحديد الألوان يدويًا. يتطلب هذا إنشاء قاموس ألوان مخصص يقوم بتعيين تسميات الفئات إلى الألوان.

def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'):
    fig, ax = plt.subplots()

    categories = np.unique(df[catcol])
    colors = np.linspace(0, 1, len(categories))
    colordict = dict(zip(categories, colors))

    df['Color'] = df[catcol].apply(lambda x: colordict[x])
    ax.scatter(df[xcol], df[ycol], c=df.Color)
    return fig

من خلال استدعاء هذه الوظيفة، يمكنك إنشاء مخطط مبعثر ملون حسب عمود الفئة المحدد:

df = pd.DataFrame({'Height': np.random.normal(size=10),
                   'Weight': np.random.normal(size=10),
                   'Gender': ["Male", "Male", "Unknown", "Male", "Male",
                              "Female", "Did not respond", "Unknown", "Female", "Female"]})
fig = dfScatter(df)
بيان الافراج أعيد طبع هذه المقالة على: 1729320496 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3