Help me een Matplotlib-visualisatie maken om verschillende datasets over tijd te vergelijken
description
Door deze prompt te gebruiken, kunnen gebruikers efficiënt informatieve visualisaties maken die verschillen of overeenkomsten tussen datasets benadrukken, waardoor het gemakkelijker wordt inzichten te verkrijgen en datagestuurde beslissingen te nemen.
prompt
try_prompt
Ik wil visualiseren hoe mijn datasets: {{dataset_1}} en {{dataset_2}} vergelijken over een gespecificeerde periode: {{time_period}}. Stel geschikte grafiektype voor en ge ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Een geschikte grafiek voor het vergelijken van maandelijkse verkoopcijfers over twee jaren is een lijngrafiek of een gestapelde lijngrafiek. Hiermee kun je de trends en verschillen tussen 2022 en 2023 duidelijk visualiseren.
Hier is een voorbeeld van Python-code met matplotlib en pandas om dit te realiseren:
```python
import pandas as pd
import matplotlib.pyplot as plt
# Voorbeeldgegevens (vervang deze door je eigen datasets)
# Data voor 2022
data_2022 = {
'Maand': ['2022-01', '2022-02', '2022-03'],
'Verkoop': [1500, 2000, 1800]
}
# Data voor 2023
data_2023 = {
'Maand': ['2023-01', '2023-02', '2023-03'],
'Verkoop': [1600, 2100, 1900]
}
# Omzetten naar DataFrame
df_2022 = pd.DataFrame(data_2022)
df_2023 = pd.DataFrame(data_2023)
# Zet de 'Maand' kolom om naar datetime
df_2022['Maand'] = pd.to_datetime(df_2022['Maand'])
df_2023['Maand'] = pd.to_datetime(df_2023['Maand'])
# Plotten
plt.figure(figsize=(10,6))
# Lijn voor 2022
plt.plot(df_2022['Maand'], df_2022['Verkoop'], label='2022', color='blue', marker='o')
# Lijn voor 2023
plt.plot(df_2023['Maand'], df_2023['Verkoop'], label='2023', color='orange', marker='o')
# Aangepaste labels en titel
plt.xlabel('Maand')
plt.ylabel('Verkoopcijfers')
plt.title('Vergelijking Maandelijkse Verkoop 2022 vs 2023 (Januari - Maart)')
# Legenda
plt.legend()
# Datumformaat voor x-as
plt.gca().xaxis.set_major_formatter(plt.matplotlib.dates.DateFormatter('%b %Y'))
# Optioneel: rotatie voor datumaanduidingen
plt.xticks(rotation=45)
# Extra opties voor leesbaarheid
plt.grid(True)
plt.tight_layout()
plt.show()
```
### Aanpassingsopties:
- **Kleuren:** Pas de `color` parameter aan (bijv. `'green'`, `'red'`, etc.).
- **Labels:** Verander de labels in `label='...'` naar wens.
- **Legenda:** Zorg dat de legenda duidelijk is door `plt.legend()` te gebruiken.
- **Periode aanpassen:** Voeg data voor andere maanden toe of filter de DataFrame vóór plotting.
Wil je een andere grafieksoort, zoals een staafdiagram, of extra opties voor een betere visualisatie?
provider: deepseek
model: deepseek-chat
Voor het vergelijken van maandelijkse verkoopcijfers over twee jaren is een **gegroepeerde staafdiagram** het meest geschikt. Hierbij kun je de maanden naast elkaar plaatsen voor een directe vergelijking.
```python
import matplotlib.pyplot as plt
import numpy as np
# Voorbeelddata (vervang met jouw werkelijke data)
maanden = ['Jan', 'Feb', 'Mrt']
verkopen_2022 = [12000, 15000, 18000] # Jan-Mrt 2022
verkopen_2023 = [14000, 16000, 19000] # Jan-Mrt 2023
# Stel figure en axis in
fig, ax = plt.subplots(figsize=(10, 6))
# Breedte van de staven en positie op x-as
bar_width = 0.35
x_pos = np.arange(len(maanden))
# Teken staafdiagrammen
bars_2022 = ax.bar(x_pos - bar_width/2, verkopen_2022, bar_width,
label='2022', color='#1f77b4', edgecolor='grey')
bars_2023 = ax.bar(x_pos + bar_width/2, verkopen_2023, bar_width,
label='2023', color='#ff7f0e', edgecolor='grey')
# Aanpasbare opties
ax.set_xlabel('Maanden', fontsize=12, fontweight='bold')
ax.set_ylabel('Verkoopcijfers', fontsize=12, fontweight='bold')
ax.set_title('Vergelijking Maandelijkse Verkoopcijfers\nJanuari - Maart 2022 vs 2023',
fontsize=14, fontweight='bold', pad=20)
ax.set_xticks(x_pos)
ax.set_xticklabels(maanden)
ax.legend(loc='upper left', frameon=True, fancybox=True, shadow=True)
# Toon waarden boven de staven
def autolabel(bars):
for bar in bars:
height = bar.get_height()
ax.annotate(f'{height:,}',
xy=(bar.get_x() + bar.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom', fontsize=10)
autolabel(bars_2022)
autolabel(bars_2023)
# Grid voor betere leesbaarheid
ax.grid(axis='y', alpha=0.3, linestyle='--')
ax.set_axisbelow(True)
# Layout optimaliseren
plt.tight_layout()
plt.show()
# OPTIONELE AANPASSINGEN:
# Verander kleuren:
# - color='rood' of hex codes '#FF5733'
# - color=['#1f77b4', '#ff7f0e', '#2ca02c'] voor meerdere kleuren
# Andere grafiektypes om te overwegen:
# 1. Lijndiagram voor trendanalyse:
# plt.plot(maanden, verkopen_2022, marker='o', label='2022')
# plt.plot(maanden, verkopen_2023, marker='s', label='2023')
# 2. Gestapelde staafdiagram voor totale vergelijking:
# plt.bar(maanden, verkopen_2022, label='2022')
# plt.bar(maanden, verkopen_2023, bottom=verkopen_2022, label='2023')
```
**Aanbevelingen voor optimalisatie:**
- Gebruik contrasterende kleuren voor verschillende jaren
- Voeg datalabels toe voor exacte waarden
- Zorg voor duidelijke aslabels en titel
- Gebruik gridlines voor betere aflezing
- Houd de legenda compact maar duidelijk
**Alternatieve visualisaties:**
- **Lijndiagram**: Als je trends wilt benadrukken
- **Gestapelde staafdiagram**: Voor cumulatieve vergelijking
- **Taartdiagram per maand**: Voor procentuele verdeling per maand
De gegroepeerde staafdiagram blijft het meest effectief voor directe vergelijking van absolute waarden tussen twee periodes.

