Αν απεικονίσουμε τον όγκο επισκέψεων κάθε ζώνης ώρας ως σωρευμένο area chart για PC, smartphone και tablet, το εμβαδό κάθε στρώσης ισούται με τον όγκο πρόσβασης. Έτσι διαβάζουμε ταυτόχρονα τόσο τη συνολική κίνηση όσο και τη μίξη συσκευών.
import numpy as np
import matplotlib.pyplot as plt
hours = np.array([0, 4, 8, 12, 16, 20, 24])
pc = np.array([120, 150, 180, 210, 240, 220, 180])
mobile = np.array([200, 220, 240, 260, 280, 300, 260])
tablet = np.array([80, 90, 120, 150, 180, 170, 140])
fig, ax = plt.subplots(figsize=(6, 4))
ax.stackplot(
hours,
tablet,
mobile,
pc,
labels=["Tablet", "Smartphone", "PC"],
colors=["#bfdbfe", "#93c5fd", "#3b82f6"],
alpha=0.85,
)
ax.set_xlim(0, 24)
ax.set_xticks(hours)
ax.set_ylabel("Πλήθος PV")
ax.set_xlabel("Ζώνη ώρας (ώρες)")
ax.set_title("Κίνηση ανά ζώνη ώρας και συσκευή")
ax.legend(loc="upper left", frameon=False)
ax.grid(axis="y", alpha=0.3)
fig.tight_layout()
plt.show()

Σημεία προσοχής #
- Εντοπίστε ποιες ώρες έχουν το μεγαλύτερο εμβαδό για να βρείτε τα traffic peaks και πώς μοιράζονται μεταξύ των συσκευών.
- Για 100% απεικόνιση, διαιρέστε κάθε σειρά με το άθροισμά της ώστε οι αναλογίες να φαίνονται καθαρά.
- Θέλετε να αναδείξετε κάποια κατηγορία; παίξτε με την ένταση χρώματος ή τη σειρά στο στοίβαγμα ώστε να μην χαθεί κάτω από άλλες στρώσεις.