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

كيف يمكنني استخدام Matplotlib لرسم ألوان مميزة لمستويات فئوية مختلفة؟

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

How Do I Use Matplotlib to Plot Distinct Colors for Various Categorical Levels?

كيفية رسم ألوان مختلفة لمستويات فئوية مختلفة في بايثون باستخدام Matplotlib فقط

مقدمة

تتناول هذه المقالة كيفية إنشاء مخطط مبعثر في بايثون باستخدام matplotlib، حيث يمثل كل لون مستوى فئوي مختلف. يتجنب هذا الأسلوب استخدام حزم التخطيط المساعدة مثل seaborn وggplot لـ Python.

مع Matplotlib

يوفر Matplotlib الوسيطة c في plt.scatter، مما يسمح بتخصيص اللون. إليك مثال:

import matplotlib.pyplot as plt
import pandas as pd

# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
                    'price': [326, 326, 327],
                    'color': ['E', 'E', 'E']})

# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}

# Scatter plot with colors
plt.scatter(df['carat'], df['price'], c=df['color'].map(colors))
plt.show()

تقوم وظيفة الخريطة (الألوان) بتعيين الألوان "الماسة" إلى ألوان "التخطيط".

مع seaborn

على الرغم من أن هذه المقالة تركز على matplotlib ، تجدر الإشارة إلى أن seaborn يقدم أيضًا حلاً مناسبًا:

import seaborn as sns

# Scatter plot with colors
sns.lmplot(x='carat', y='price', data=df, hue='color', fit_reg=False)

With pandas.DataFrame.groupby & pandas.DataFrame.plot

للطريقة اليدوية، يمكنك استخدام الباندا للتجميع حسب اللون ورسم كل مجموعة على حدة:

import matplotlib.pyplot as plt
import pandas as pd

# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
                    'price': [326, 326, 327],
                    'color': ['E', 'E', 'E']})

# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}

# Group by color and plot
grouped = df.groupby('color')
for key, group in grouped:
    group.plot(ax=plt.gca(), kind='scatter', x='carat', y='price', label=key, color=colors[key])

plt.show()

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

الاستنتاج

لقد أوضحت هذه المقالة كيفية رسم ألوان مختلفة لـ مستويات فئوية مختلفة في بايثون باستخدام matplotlib، إلى جانب خيارات إضافية باستخدام seaborn والمنهج اليدوي مع الباندا.

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

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

Copyright© 2022 湘ICP备2022001581号-3