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

من أين جاءت العيدية؟

  • bar
  • pie
  • subplots

قاموس واحد يكفي لرسمين: أعمدة تقارن المبالغ، ودائرة تُظهر نصيب كل شخص. subplots(1, 2) تضع الرسمين جنبًا إلى جنب، وautopct تكتب النسبة على كل قطعة.

eid-bar-pie.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]

eidiya = {"الأب": 300, "الأم": 250, "الجدة": 200, "العم": 150, "الخالة": 100}

names = [ar(name) for name in eidiya]
amounts = list(eidiya.values())
print("المجموع:", sum(amounts), "ريال")
for name, amount in eidiya.items():
    print(f"{name}: {amount / sum(amounts):.0%}")

colors = ["#0f766e", "#14b8a6", "#5eead4", "#f5b83d", "#c27c0e"]
fig, (left, right) = plt.subplots(1, 2, figsize=(10, 4))

left.bar(names, amounts, color=colors)
left.set_title(ar("العيدية بالريال"))

right.pie(amounts, labels=names, colors=colors, autopct="%1.0f%%")
right.set_title(ar("نصيب كل شخص"))
plt.show()

المخرجات

المجموع: 1000 ريال
الأب: 30%
الأم: 25%
الجدة: 20%
العم: 15%
الخالة: 10%
من أين جاءت العيدية؟
النتيجة بعد التشغيل: من أين جاءت العيدية؟

نورة: «ماذا لو أعطت الجدّة 500؟» غيّر الرقم في القاموس، وشاهد الدائرة تتغيّر وحدها.

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