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

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

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

Can You Color Scatter Plots Based on Specific Column Values in Pandas with Matplotlib?

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

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

الاستيراد والبيانات

للبدء، نقوم باستيراد المكتبات الضرورية ، بما في ذلك Matplotlib (كما plt) وPandas (كما pd). نقوم أيضًا بإنشاء نموذج DataFrame ("df") بثلاثة أعمدة: "الارتفاع" و"الوزن" و"الجنس".

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

np.random.seed(0)
N = 37
_genders = ["Female", "Male", "Non-binary", "No Response"]
df = pd.DataFrame({
    "Height (cm)": np.random.uniform(low=130, high=200, size=N),
    "Weight (kg)": np.random.uniform(low=30, high=100, size=N),
    "Gender": np.random.choice(_genders, size=N),
})

التحديث في أغسطس 2021

قدم Seaborn وظائف جديدة على مستوى الشكل، مثل seaborn.replot في الإصدار 0.11.0. يوصى باستخدام هذه الوظائف بدلاً من استخدام FacetGrid مباشرةً.

sns.relplot(data=df, x="Weight (kg)", y="Height (cm)", hue="Gender", hue_order=_genders, aspect=1.61)
plt.show()

إجابة قديمة (2015)

إذا كنت ترغب في استخدام Matplotlib مباشرة، فستحتاج إلى تعيين وظيفة مبعثر matplotlib على فئات Pandas DataFrame . للقيام بذلك:

    قم بإنشاء قاموس يحتوي على فئات فريدة من العمود والألوان.
  • أضف عمود "لون" جديدًا إلى DataFrame، وقم بتعيين لون مطابق لكل فئة.
  • استخدم وظيفة التشتت لرسم البيانات، مع تحديد عمود اللون كوسيطة "c".
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

fig = dfScatter(df)
fig.savefig('fig1.png')
باتباع هذه الخطوات، يمكنك بسهولة تلوين المخططات المبعثرة بناءً على قيم الأعمدة باستخدام Pandas وMatplotlib.

بيان الافراج يتم استنساخ هذه المقالة في: 1729320559 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3