عيدية خالد يومًا بعد يوم
Matplotlibplotlegendgrid
نجمع العيدية يومًا بعد يوم في قائمة، ثم نرسم خطَّين: المجموع وعيدية كل يوم. marker يضع علامة على كل نقطة، وlabel مع legend() يشرحان الخطّين.
# حصّالة خالد: كيف نما مجموع العيدية يومًا بعد يوم
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()الإصدار أولًا، فيعمل المثال في الموضعين.
جرّب أن تغيّر رقمًا أو لونًا في الكود، ثم شغّله من جديد وشاهد ما يتغيّر.▶ افتح المثال في المحرر