Ali Ismael نشر 14 أكتوبر 2021 أرسل تقرير نشر 14 أكتوبر 2021 لدي plot وأريد جعل لون خلفية له سوداء، كيف يمكنني تغييرها؟ علماً أنني حاول استخدام set_facecolor لكن ظهر كما في الصورة فما السبب وما الحل؟ import numpy as np import matplotlib.pyplot as plt x = np.random.normal(1, 2, 5000) y = np.random.normal(-1, 3, 2000) bins = np.linspace(-10, 10, 30) fig = plt.figure() fig.patch.set_facecolor('black') plt.hist([x,y], bins = 15,label=[x,y],color=["red","blue"]) legend = ['Data1','Data2'] plt.legend(legend) plt.show() 1 اقتباس
1 Ali Haidar Ahmad نشر 14 أكتوبر 2021 أرسل تقرير نشر 14 أكتوبر 2021 يمكنك استخدام set_facecolor(color) للتحكم بألوان أي axes لديك لكن يجب أن تكون دقيقاُ في استخدامها، فمثلاً لتغيير لون الخلفية في مثالك نقوم بأخذ كائن يمثل ال axes (المساحة التي تظهر فيها الصورة) الخاص بك ثم نستدعي منه الدالة كالتالي: import numpy as np import matplotlib.pyplot as plt x = np.random.normal(1, 2, 5000) y = np.random.normal(-1, 3, 2000) bins = np.linspace(-10, 10, 30) # الخاص بك axes أخذ غرض يمثل ال ax = plt.axes() ax.set_facecolor('black') # هنا فقط لإضافة خطوط شبكة للرسم أي يمكنك تجاهلها ax.grid(b = True, color ='w', linestyle ='-.', linewidth = 0.5, alpha = 0.6) plt.hist([x,y], bins = 15,label=[x,y],color=["red","blue"]) legend = ['Data1','Data2'] plt.legend(legend) plt.show() الخرج: أما ماتقوم به أنت هو تلوين ال figure الذي يحتوي ال axes، فكما نعلم أن ال figure يحتوي ال axes (واحد أو أكثر) انظر للصورة لتفهم ما أقصد: حيث قمت بأخذ كائن يمثل ال figure ثم قمت بضبط لونه، فظهر بذلك الشكل. وكحل آخر يمكنك استخدام rcParams كالتالي: import matplotlib.pyplot as plt plt.rcParams['axes.facecolor'] = 'black' 1 اقتباس
1 Ahmed Sharshar نشر 14 أكتوبر 2021 أرسل تقرير نشر 14 أكتوبر 2021 يمكنك استخدام ax.set_facecolor والذي يمكنك بالتحكم بالوان الرسومات بشكل كبير ابتداء من تغيير الخلفية وحتى تغيير الوان بداخل بعضها كما سنري في الامثلة التالية. الولا دعنا ننشئ رسم بشكل بسيط: # استدعاء الدالة import matplotlib.pyplot as plt # اعطاء قيم student_marks = [50, 60, 70, 80, 90] student_grade = ['B', 'B', 'B+', 'B+', 'A'] plt.plot(student_marks, student_grade) # اعطاء اسماء للمحاور plt.xlabel("student_marks", fontweight='bold') plt.ylabel("student_grade", fontweight='bold') # اعطاء اسم للرسم plt.title("Student Marks v/s Student Grade") # عرض الرسم plt.show() تظهر كأي رسم اعتيادي كالتالي: ويمكننا تغيير لون الخلفية للون الأصفر بسهولة كالتالي: #نفس السابق import matplotlib.pyplot as plt student_marks = [50, 60, 70, 80, 90] student_grade = ['B', 'B', 'B+', 'B+', 'A'] plt.plot(student_marks, student_grade) plt.xlabel("student_marks", fontweight='bold') ax = plt.axes() # تغيير لون الخلفية للاصفر ax.set_facecolor("yellow") plt.ylabel("student_grade", fontweight='bold') plt.title("Student Marks v/s Student Grade") plt.show() وتظهر هكذا: يمكنك كذلك تغيير اللون الداخلى والخارجي للرسم بسهولة: # استدعاء المكتبات import matplotlib.pyplot as plt import numpy as np # اعطاء قيم x = np.arange(0, 10, .1) y = np.sin(x) # ضبط لون الخلفية الخارجي plt.figure(facecolor='#94F008') # الرسم plt.plot(x, y) # اعطاء اسماء للمحاور plt.xlabel("X") ax = plt.axes() # ضبط لون الخلفية الداخلية ax.set_facecolor("#1CC4AF") plt.ylabel('sin(x)') # اظهار الرسم plt.show() وتظهر هكذا: لاحظ امكانية كتابة اللون اما باسمه اذا كان متوافرا أو بالكود الخاص به. اقتباس
السؤال
Ali Ismael
لدي plot وأريد جعل لون خلفية له سوداء، كيف يمكنني تغييرها؟ علماً أنني حاول استخدام set_facecolor لكن ظهر كما في الصورة فما السبب وما الحل؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.