import pandas as pd
import matplotlib.pyplot as plt
= {
data 'Miesiąc': ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj'],
'Sprzedaż': [1000, 1200, 900, 1100, 1300],
'Usługi': [200, 250, 230, 260, 300],
'Reklama': [150, 180, 170, 160, 190]
}
= pd.DataFrame(data)
df
= df['Miesiąc']
x = df['Sprzedaż']
y1 = df['Usługi']
y2 = df['Reklama']
y3
=(10,6))
plt.figure(figsize=['Sprzedaż', 'Usługi', 'Reklama'])
plt.stackplot(x, y1, y2, y3, labels='upper left')
plt.legend(loc'Przychody firmy w podziale na źródła')
plt.title('Miesiąc')
plt.xlabel('Kwota (PLN)')
plt.ylabel(=45)
plt.xticks(rotation
plt.tight_layout() plt.show()
39 Matplotlib - wykres warstwowy
Wykres warstwowy to rodzaj wizualizacji, w której kolejne serie danych są przedstawione jako nakładające się obszary/warstwy. Wysokość każdej warstwy odpowiada wartości danej kategorii, a suma wysokości wszystkich warstw pokazuje wartość łączną.
39.1 Główne zastosowania wykresów warstwowych
- Analiza składu całkowitego w czasie
- Pozwala zobaczyć, jak poszczególne komponenty (np. źródła przychodów, wydatki, segmenty rynku) przyczyniają się do wartości całkowitej w kolejnych momentach.
- Przydatne przy monitoringu udziałów procentowych i zmian w proporcjach.
- Pozwala zobaczyć, jak poszczególne komponenty (np. źródła przychodów, wydatki, segmenty rynku) przyczyniają się do wartości całkowitej w kolejnych momentach.
- Porównanie trendów wielowymiarowych
- Umożliwia jednoczesne śledzenie wielu serii czasowych („warstw”) w jednej przestrzeni, co ułatwia wykrycie wzajemnych korelacji i momentów przełomowych.
- Idealne do prezentacji wielokanałowych danych (np. ruch na stronie z różnych źródeł).
- Umożliwia jednoczesne śledzenie wielu serii czasowych („warstw”) w jednej przestrzeni, co ułatwia wykrycie wzajemnych korelacji i momentów przełomowych.
- Prezentacja udziałów rynkowych lub segmentów
- Pokazuje, jak udziały poszczególnych produktów, regionów czy grup klientów zmieniają się w czasie.
- Ułatwia identyfikację „rosnących” i „malejących” segmentów.
- Pokazuje, jak udziały poszczególnych produktów, regionów czy grup klientów zmieniają się w czasie.
- Budżetowanie i rozliczenia
- Wizualizuje strukturę kosztów lub przychodów według kategorii na przestrzeni cyklu budżetowego.
- Pomaga w szybkim wychwyceniu nadmiernych wydatków lub źródeł wzrostu przychodów.
- Wizualizuje strukturę kosztów lub przychodów według kategorii na przestrzeni cyklu budżetowego.
- Monitorowanie zasobów i obciążeń
- Śledzenie wykorzystania zasobów (np. personelu, maszyn) pod kątem różnych projektów lub działów.
- Umożliwia planowanie i równoważenie obciążenia.
- Śledzenie wykorzystania zasobów (np. personelu, maszyn) pod kątem różnych projektów lub działów.
- Porównanie scenariuszy lub wariantów
- Nakładanie prognozowanych danych obok historycznych ułatwia porównanie „spodziewanego” vs. „rzeczywistego” przebiegu wskaźników.
- Wspiera decyzje strategiczne przez zobrazowanie odchyleń.
- Nakładanie prognozowanych danych obok historycznych ułatwia porównanie „spodziewanego” vs. „rzeczywistego” przebiegu wskaźników.
import pandas as pd
import matplotlib.pyplot as plt
= {
data 'Miesiąc': ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj'],
'Sprzedaż': [1000, 1200, 900, 1100, 1300],
'Usługi': [200, 250, 230, 260, 300],
'Reklama': [150, 180, 170, 160, 190]
}
= pd.DataFrame(data)
df
= df['Miesiąc']
x = df['Sprzedaż']
y1 = df['Usługi']
y2 = df['Reklama']
y3
= plt.subplots(figsize=(10,6))
fig, ax =['Sprzedaż', 'Usługi', 'Reklama'])
ax.stackplot(x, y1, y2, y3, labels='upper left')
ax.legend(loc'Przychody firmy w podziale na źródła')
ax.set_title('Miesiąc')
ax.set_xlabel('Kwota (PLN)')
ax.set_ylabel(=45)
plt.xticks(rotation
fig.tight_layout() plt.show()
import pandas as pd
import matplotlib.pyplot as plt
= {
data 'Dzień': ['Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek'],
'Mobilne': [1500, 1800, 1600, 1700, 2000],
'Desktop': [1200, 1100, 1300, 1250, 1400],
'Tablet': [300, 350, 320, 310, 360]
}
= pd.DataFrame(data)
df
= df['Dzień']
x = df['Mobilne']
y1 = df['Desktop']
y2 = df['Tablet']
y3
=(10,6))
plt.figure(figsize
plt.stackplot(
x, y1, y2, y3,=['Mobilne', 'Desktop', 'Tablet'],
labels=['SteelBlue', 'MediumSeaGreen', 'IndianRed'],
colors=0.8
alpha
)'Ruch na stronie według urządzeń w ciągu tygodnia')
plt.title('Dzień tygodnia')
plt.xlabel('Liczba odwiedzin')
plt.ylabel(='upper left')
plt.legend(loc='y', linestyle='--', alpha=0.7)
plt.grid(axis=45)
plt.xticks(rotation
plt.tight_layout() plt.show()