اذهب إلى المحتوى
  • 0

رسم عدة خطوط بألوان مختلفة ضمن نفس الشكل figure في Matplotlib

Ali Ismael

السؤال

Recommended Posts

  • 1

يمكنك استخدام الدالة plot مع الوسيط color كما في المثال التالي:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10, 10, 30)
plt.plot(x, x,color="red")
plt.plot(x, 8 * x,color="blue")
plt.plot(x, 6 * x,color="black")
plt.plot(x, 5 * x,color="c")
plt.plot(x, 4 * x,color="brown")
# ويمكنك إضافة صندوق توضيح للبيانات كما يلي
plt.legend(['y = x', 'y = 8x', 'y = 6x', 'y = 5x', 'y = 4x'], loc='upper left')
plt.show()

النتيجة:
index.png.d6b731be5d88716cf05a2deaec98af5b.png
كما يمكنك التحكم بالألوان من خلال الدالة set_color_cycle:

plt.gca().set_color_cycle(['color1', 'color2', 'color3', 'color4','color5'])

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

import matplotlib.pyplot as plt
import numpy as np
# عدد الخطوط التي تريدها
num_plots = 25
# colormaps اختيار خريطة لونية معينة 
# Accent هنا سمختار الخريطة اللونية
colormap = plt.cm.Accent
plt.gca().set_prop_cycle(plt.cycler('color', plt.cm.jet(np.linspace(0, 1, num_plots))))
# رسم الخطوط
x = np.random.normal(1, 2, 5000) # تحديد بيانات عشوائية
labels = []
for i in range(1, num_plots + 1):
    plt.plot(x, i * x + 5 * i)
    labels.append(r'$y = %ix + %i$' % (i, 5*i))
# رسم صندوق بيانات للتوضيح
plt.legend(labels, ncol=4, loc='upper center', 
           bbox_to_anchor=[0.5, 1.1], 
           columnspacing=1.0, labelspacing=0.0,
           handletextpad=0.0, handlelength=1.5,
           fancybox=True, shadow=True)

plt.show()

النتيجة:
2.png.f250d139a5997dad91ff1e51ecd06e3e.png
وفي الرابط التالي تجد أنواع خرائط لونية مختلفة، يمكنك اختيار ماتفضله:
https://matplotlib.org/1.2.1/examples/pylab_examples/show_colormaps.html

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يمكنك ببساطة تحديد اللون مع رسم الدالة في plt.plot بسهولة فقط بتمرير الحرف الأول من اسم الخط كالتالي :

#الخط الأول
x1 = [1, 2, 3]
y1 = [4, 5, 6]

#الخط الثاني
x2 = [1, 3, 5]
y2 = [6, 5, 4]

#جعل الخط الأول أخضر
plt.plot(x1, y1, "g")

#جعل الخط الثاني أحمر
plt.plot(x2, y2, "r")

وتكون النتيجة كالتالي:

3.PNG.dad630790c2b55d34a964e050afed47d.PNG

أو يمكنك الرسم عن طريق تمرير ال index الخاص باللون كالتالي:

import matplotlib.pyplot as plt
import numpy as np

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)


for i in range(1,15):
    ax1.plot(np.array([1,5])*i,label=i)

colormap = plt.cm.gist_ncar   
colors = [colormap(i) for i in np.linspace(0, 1,len(ax1.lines))]
for i,j in enumerate(ax1.lines):
    j.set_color(colors[i])
  

ax1.legend(loc=2)

والنتيجة:

C024P.png.c32949501b8550d38c9f9a449449b9be.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...