Maak een Matplotlib-visualisatie om historische trends in meerdere datasets te vergelijken
description
Door deze prompt te gebruiken, kunnen gebruikers gemakkelijk trends in meerdere datasets visualiseren en vergelijken, wat betere analyse en besluitvorming op basis van historische gegevens mogelijk maakt. Het biedt een duidelijke en aanpasbare aanpak voor het visueel presenteren van complexe informatie.
prompt
try_prompt
Help me een Matplotlib-visualisatie te maken die historische trends vergelijkt over meerdere datasets. Ik wil de gegevens visualiseren van de volgende bronnen: {{dataset_sources}}. Stel geschikte ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een voorbeeld van hoe je een overzichtelijke en impactvolle visualisatie kunt maken met Matplotlib om de verkoopgegevens van 2020 tot 2023 te vergelijken. We gebruiken lijngrafieken voor de trends, en bieden opties voor aanpassing in lay-out en kleurenschema's.
```python
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# Voorbeeldgegevens genereren (vervang dit door je eigen gegevens)
jaren = ['2020', '2021', '2022', '2023']
maanden = pd.date_range(start='2020-01-01', end='2023-12-01', freq='MS')
# Simuleer verkoopgegevens voor 4 jaren
np.random.seed(0)
data = {
'2020': np.random.normal(loc=200, scale=50, size=len(maanden)),
'2021': np.random.normal(loc=250, scale=60, size=len(maanden)),
'2022': np.random.normal(loc=300, scale=70, size=len(maanden)),
'2023': np.random.normal(loc=350, scale=80, size=len(maanden)),
}
df = pd.DataFrame(data, index=maanden)
# Plot instellen
plt.figure(figsize=(14, 8))
# Kleuren schema (pas aan naar je voorkeur)
kleuren = {
'2020': '#1f77b4', # Blauw
'2021': '#ff7f0e', # Oranje
'2022': '#2ca02c', # Groen
'2023': '#d62728', # Rood
}
# Plot elke dataset als lijn
for jaar in jaren:
plt.plot(df.index, df[jaar], label=jaar, color=kleuren[jaar], linewidth=2)
# Lay-out aanpassen
plt.title('Verkooptrends 2020-2023', fontsize=16)
plt.xlabel('Datum', fontsize=14)
plt.ylabel('Verkoop (eenheden)', fontsize=14)
plt.legend(title='Jaar', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.6)
# Optie: data punten markeren voor meer duidelijkheid
# voor meer impact, kun je ook markers toevoegen:
# for jaar in jaren:
# plt.plot(df.index, df[jaar], 'o', color=kleuren[jaar], markersize=4)
# Layout optimaliseren
plt.tight_layout()
# Tekstopties voor aanpassing
# Bijvoorbeeld: achtergrondkleur wijzigen
# plt.gca().set_facecolor('#f0f0f0')
# Of de fontstijl aanpassen
# plt.rcParams['font.family'] = 'Arial'
plt.show()
```
**Aanpassingsopties:**
- **Grafiektype:** Wissel lijngrafieken af met bijvoorbeeld staafdiagrammen (`plt.bar`) als je discrete gegevens hebt.
- **Kleuren:** Pas de kleuren aan in de `kleuren` dictionary voor meer impact of passend bij je huisstijl.
- **Lay-out:** Verander de figure size (`figsize`), lettergroottes, en voeg eventueel annotaties toe voor belangrijke data.
- **Duidelijkheid:** Voeg markers toe of gebruik verschillende lijntypes voor extra onderscheid.
Deze code is direct uitvoerbaar en kan eenvoudig worden aangepast aan je eigen data en wensen!
provider: deepseek
model: deepseek-chat
Hier is een complete Matplotlib-implementatie voor het visualiseren van historische verkooptrends met verschillende aanpassingsopties:
```python
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from datetime import datetime
# Voorbeeld verkoopgegevens (2020-2023)
data = {
'Jaar': [2020, 2021, 2022, 2023],
'Product_A': [120, 180, 220, 280],
'Product_B': [80, 150, 190, 240],
'Product_C': [60, 110, 170, 210],
'Product_D': [90, 130, 160, 200]
}
df = pd.DataFrame(data)
# STANDAARD VISUALISATIE
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 6))
# 1. LIJNGRAFIEK - Voor trendanalyse
for product in ['Product_A', 'Product_B', 'Product_C', 'Product_D']:
ax1.plot(df['Jaar'], df[product], marker='o', linewidth=2.5, label=product)
ax1.set_title('Verkooptrends 2020-2023', fontsize=14, fontweight='bold', pad=20)
ax1.set_xlabel('Jaar', fontsize=12)
ax1.set_ylabel('Verkoopvolume', fontsize=12)
ax1.legend(loc='upper left')
ax1.grid(True, alpha=0.3)
ax1.set_xticks(df['Jaar'])
# 2. STAAFDIAGRAM - Voor jaar-op-jaar vergelijking
bar_width = 0.2
x_pos = np.arange(len(df['Jaar']))
for i, product in enumerate(['Product_A', 'Product_B', 'Product_C', 'Product_D']):
ax2.bar(x_pos + i * bar_width, df[product], bar_width, label=product)
ax2.set_title('Jaarlijkse Verkoopvergelijking', fontsize=14, fontweight='bold', pad=20)
ax2.set_xlabel('Jaar', fontsize=12)
ax2.set_ylabel('Verkoopvolume', fontsize=12)
ax2.set_xticks(x_pos + bar_width * 1.5)
ax2.set_xticklabels(df['Jaar'])
ax2.legend()
plt.tight_layout()
plt.show()
# OPTIONELE AANPASSINGEN - KIES EEN VAN DEZE STIJLEN:
# OPTIE 1: DONKER THEMA
def donker_theme():
plt.style.use('dark_background')
fig, ax = plt.subplots(figsize=(12, 6))
colors = ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4']
for i, product in enumerate(['Product_A', 'Product_B', 'Product_C', 'Product_D']):
ax.plot(df['Jaar'], df[product], marker='s', linewidth=3,
color=colors[i], label=product, markersize=8)
ax.set_title('Verkooptrends 2020-2023 - Donker Thema',
fontsize=16, fontweight='bold', pad=20, color='white')
ax.set_xlabel('Jaar', fontsize=12, color='white')
ax.set_ylabel('Verkoopvolume', fontsize=12, color='white')
ax.legend(loc='upper left', framealpha=0.2)
ax.grid(True, alpha=0.2)
plt.tight_layout()
plt.show()
# OPTIE 2: PROFESSIONEEL THEMA
def professioneel_theme():
plt.style.use('seaborn-v0_8-whitegrid')
fig, ax = plt.subplots(figsize=(12, 6))
colors = ['#2E86AB', '#A23B72', '#F18F01', '#C73E1D']
bar_width = 0.15
x_pos = np.arange(len(df['Jaar']))
for i, product in enumerate(['Product_A', 'Product_B', 'Product_C', 'Product_D']):
ax.bar(x_pos + i * bar_width, df[product], bar_width,
color=colors[i], label=product, alpha=0.8, edgecolor='black', linewidth=0.5)
ax.set_title('Jaarlijkse Verkoopanalyse 2020-2023',
fontsize=16, fontweight='bold', pad=20)
ax.set_xlabel('Jaar', fontsize=12)
ax.set_ylabel('Verkoopvolume', fontsize=12)
ax.set_xticks(x_pos + bar_width * 1.5)
ax.set_xticklabels(df['Jaar'])
ax.legend()
plt.tight_layout()
plt.show()
# OPTIE 3: GESTAPELDE STAFFDIAGRAM
def gestapelde_bars():
fig, ax = plt.subplots(figsize=(12, 6))
categories = ['Product_A', 'Product_B', 'Product_C', 'Product_D']
bottom_values = np.zeros(len(df['Jaar']))
colors = ['#FF9999', '#66B2FF', '#99FF99', '#FFD700']
for i, product in enumerate(categories):
ax.bar(df['Jaar'], df[product], bottom=bottom_values,
label=product, color=colors[i], alpha=0.8)
bottom_values += df[product].values
ax.set_title('Cumulatieve Verkoopontwikkeling 2020-2023',
fontsize=16, fontweight='bold', pad=20)
ax.set_xlabel('Jaar', fontsize=12)
ax.set_ylabel('Totaal Verkoopvolume', fontsize=12)
ax.legend(loc='upper left')
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
# Gebruik één van de thema's (haal de commentaar weg):
# donker_theme()
# professioneel_theme()
# gestapelde_bars()
```
**Aanbevolen grafiektypes voor uw data:**
1. **Lijngrafiek**: Perfect voor trendanalyse over tijd
2. **Staafdiagram**: Ideaal voor jaar-op-jaar vergelijking
3. **Gestapelde staafdiagram**: Toont cumulatieve ontwikkeling
**Layout aanpassingsopties:**
- **Kleurenschema's**: Donker thema voor presentaties, professionele kleuren voor rapporten
- **Grootte**: `figsize=(12, 6)` voor optimale leesbaarheid
- **Grid**: Gebruik `grid(True, alpha=0.3)` voor subtiele hulplijnen
- **Legenda**: Positioneer strategisch (`loc='upper left'`)
**Uitvoeren:**
1. Kopieer de code naar een Python-bestand
2. Installeer eventueel ontbrekende packages: `pip install matplotlib pandas numpy`
3. Voer uit en kies gewenste thema's door commentaar te verwijderen
De code bevat zowel een basisversie als geavanceerde thema's voor verschillende gebruiksscenario's.

