بعد الأساسيات · الصور والرسومالمثال 4 من 6

عيدية خالد يومًا بعد يوم

  • Matplotlib
  • plot
  • legend
  • grid

نجمع العيدية يومًا بعد يوم في قائمة، ثم نرسم خطَّين: المجموع وعيدية كل يوم. marker يضع علامة على كل نقطة، وlabel مع legend() يشرحان الخطّين.

eid-line-chart.py▶ شغّل
# حصّالة خالد: كيف نما مجموع العيدية يومًا بعد يوم
import matplotlib
import matplotlib.pyplot as plt
import arabic_reshaper

# Matplotlib 3.11 وما بعده يصل الحروف العربية بنفسه، والإصدارات الأقدم تحتاج مساعدتنا
NEW_MATPLOTLIB = tuple(map(int, matplotlib.__version__.split(".")[:2])) >= (3, 11)

def ar(text):
    if NEW_MATPLOTLIB:
        return text
    return arabic_reshaper.reshape(text)[::-1]

days = [1, 2, 3, 4]
daily = [450, 300, 150, 100]

total = 0
savings = []
for amount in daily:
    total += amount
    savings.append(total)
print("المجموع بعد كل يوم:", savings)

plt.figure(figsize=(6, 3.5))
plt.plot(days, savings, marker="o", color="#0f766e", label=ar("المجموع"))
plt.plot(days, daily, marker="s", linestyle="--", color="#f5b83d", label=ar("عيدية اليوم"))
plt.title(ar("عيدية خالد خلال أيام العيد"))
plt.xlabel(ar("يوم العيد"))
plt.ylabel(ar("ريال"))
plt.xticks(days)
plt.legend()
plt.grid(alpha=0.3)
plt.show()

المخرجات

المجموع بعد كل يوم: [450, 750, 900, 1000]
عيدية خالد يومًا بعد يوم
النتيجة بعد التشغيل: عيدية خالد يومًا بعد يوم

Matplotlib 3.11 وما بعده يصل الحروف العربية بنفسه، أمّا صفحة ▶ Run فعليها إصدار أقدم. لذلك تفحص ar() الإصدار أولًا، فيعمل المثال في الموضعين.

جرّب أن تغيّر رقمًا أو لونًا في الكود، ثم شغّله من جديد وشاهد ما يتغيّر.▶ افتح المثال في المحرر