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

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

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

How to Color-Code Scatter Plots by Column Values in Python?

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

في تصور البيانات، يمكن أن يؤدي تعيين الألوان إلى فئات مختلفة إلى تعزيز الوضوح والكشف عن الأنماط. هذه الوظيفة متاحة بسهولة في ggplot2 لـ R، ولكن كيف يمكننا تحقيق الشيء نفسه في Python باستخدام pandas وmatplotlib؟

التحديث: تحسينات Seaborn

منذ الإجابة الأصلية ، برزت Seaborn كمكتبة قوية لإنشاء مؤامرات إعلامية وجذابة بصريًا. توفر تحديثاتها الأخيرة وظائف ملائمة لتلوين المخططات المبعثرة بناءً على قيم الأعمدة:

  • استخدام seaborn.replot : تجمع هذه الوظيفة عالية المستوى بين جوانب matplotlib.pyplot.scatter وSeaborn's FacetGrid. فهو يتعامل تلقائيًا مع ترميز الألوان استنادًا إلى معلمات اللون والترتيب المحددة.
  • تعيين matplotlib.pyplot.scatter إلى seaborn.FacetGrid : على غرار النهج الأصلي، يمكنك تعيين وظيفة التشتت على FacetGrid وتخصيص الألوان بناءً على درجة اللون.

نهج Pandas الأصلي و Matplotlib

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

import matplotlib.pyplot as plt
import pandas as pd

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.append(np.random.normal(6, 0.25, size=5), np.random.normal(5.4, 0.25, size=5)),
                   'Weight': np.append(np.random.normal(180, 20, size=5), np.random.normal(140, 20, size=5)),
                   'Gender': ["Male", "Male", "Male", "Male", "Male",
                              "Female", "Female", "Female", "Female", "Female"]})
استدعاء وظيفة dfScatter مع إطار البيانات:

fig = dfScatter(df)
fig.savefig('color_coded_scatterplot.png')
ينتج مخططًا مبعثرًا حيث يتم تلوين النقاط حسب الجنس:

[صورة مخطط مبعثر ملون حسب الجنس]

Seaborn's Advanced توفر الميزات ووظيفة dfScatter المخصصة خيارات مرنة لإضافة الترميز اللوني إلى المخططات المبعثرة في Python، مما يجعل تصور البيانات أكثر إفادة وجاذبية بصريًا.

بيان الافراج أعيد طبع هذه المقالة على: 1729320380 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3