import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
# Wczytanie danych
= pd.read_csv('dataset/sprzedaz.csv')
dane
# Dostosowanie kolorów dla lepszej czytelności
= ['steelblue', 'crimson', 'forestgreen']
colors = ['o', 's', '^']
markers
# Utworzenie wykresu dla każdego regionu
for i, region in enumerate(dane['Region']):
= dane.loc[dane['Region'] == region, ['Styczeń', 'Luty', 'Marzec', 'Kwiecień']].values.flatten()
wartosci = ['Styczeń', 'Luty', 'Marzec', 'Kwiecień']
miesiace
=markers[i], linestyle='-', linewidth=2.5,
plt.plot(miesiace, wartosci, marker=colors[i], label=region, markersize=8)
color
# Dostosowanie wykresu
'Sprzedaż w poszczególnych regionach w pierwszym kwartale', fontsize=16, pad=20)
plt.title('Miesiąc', fontsize=12)
plt.xlabel('Wartość sprzedaży', fontsize=12)
plt.ylabel(True, linestyle='--', alpha=0.7)
plt.grid(
# Poprawienie legendy
='Region', fontsize=10, title_fontsize=12)
plt.legend(title
# Dostosowanie zakresu osi Y dla lepszej prezentacji
min(dane[['Styczeń', 'Luty', 'Marzec', 'Kwiecień']].values.flatten()) - 20,
plt.ylim(max(dane[['Styczeń', 'Luty', 'Marzec', 'Kwiecień']].values.flatten()) + 30)
# Poprawienie układu
plt.tight_layout()
# Wyświetlenie wykresu
plt.show()
46 Problem #1
Pliki są dostępne tutaj https://github.com/pjastr/aiwd-book/tree/main/dataset
Cel: wykres liniowy
Cel dodatkowy: różnice miedzy danymi szerokimi a długimi
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
= pd.read_csv('dataset/sprzedaz.csv')
df = df.melt(
df_long ='Region',
id_vars='Miesiąc',
var_name='Sprzedaż'
value_name
)print(df_long)
sns.lineplot(=df_long,
data='Miesiąc',
x='Sprzedaż',
y='Region'
hue
) plt.show()
Region Miesiąc Sprzedaż
0 Północ Styczeń 200
1 Południe Styczeń 180
2 Zachód Styczeń 150
3 Północ Luty 220
4 Południe Luty 170
5 Zachód Luty 160
6 Północ Marzec 210
7 Południe Marzec 175
8 Zachód Marzec 155
9 Północ Kwiecień 230
10 Południe Kwiecień 190
11 Zachód Kwiecień 165