Ontwerp een geautomatiseerd Seaborn-rapport met samenvattende statistieken en visualisaties
description
Met deze prompt kan de gebruiker snel een compleet rapport opzetten dat zowel statistische inzichten als visuele representaties bevat, waardoor handmatige analyse en rapportage worden vereenvoudigd. Het bespaart tijd, verhoogt de consistentie en helpt bij het beter communiceren van data-inzichten.
prompt
Help me bij het ontwerpen van een geautomatiseerd rapport met Seaborn dat samenvattende statistieken en relevante visualisaties bevat voor mijn dataset. Beschrijving van mijn dataset: <geef een gedetailleerde beschrijving van je dataset>. Welke statistieken wil ik analyseren: <bijv. gemidd ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een stapsgewijze gids en voorbeeldcode om een geautomatiseerd rapport te maken met Seaborn en Pandas, inclusief samenvattende statistieken en relevante visualisaties in een minimalistische stijl met blauwe accenten.
Stap 1: Importeer de benodigde libraries
```python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
```
Stap 2: Laad je dataset
```python
# Vervang 'jouw_dataset.csv' door de juiste bestandsnaam of pad
df = pd.read_csv('jouw_dataset.csv', parse_dates=['datum'])
```
Stap 3: Bereken samenvattende statistieken
```python
# Groepeer op bijvoorbeeld categorie en/of datum
# Voor overzicht, bijvoorbeeld per categorie
stats = df.groupby('categorie')['verkochte_eenheden', 'omzet'].agg(['mean', 'median', 'std'])
print(stats)
```
Stap 4: Maak visualisaties
```python
# Stel een minimalistische stijl in
sns.set_theme(style='whitegrid', palette='Blues')
# Boxplot voor omzet per categorie
plt.figure(figsize=(8,6))
sns.boxplot(x='categorie', y='omzet', data=df)
plt.title('Boxplot van omzet per categorie')
plt.tight_layout()
plt.savefig('boxplot_omzet_per_categorie.png')
# Histogram van verkochte eenheden
plt.figure(figsize=(8,6))
sns.histplot(df['verkochte_eenheden'], bins=20)
plt.title('Histogram van verkochte eenheden')
plt.xlabel('Verkochte eenheden')
plt.ylabel('Frequentie')
plt.tight_layout()
plt.savefig('histogram_verkochte_eenheden.png')
```
Stap 5: Automatisering en export
Je kunt alles samen in een script zetten dat automatisch de statistieken print en de visualisaties opslaat in een map. Bijvoorbeeld:
```python
def genereer_rapport(data):
# Samenvattende statistieken
stats = data.groupby('categorie')[['verkochte_eenheden', 'omzet']].agg(['mean', 'median', 'std'])
print(stats)
# Visualisaties
sns.set_theme(style='whitegrid', palette='Blues')
# Boxplot omzet per categorie
plt.figure(figsize=(8,6))
sns.boxplot(x='categorie', y='omzet', data=data)
plt.title('Boxplot van omzet per categorie')
plt.tight_layout()
plt.savefig('boxplot_omzet_per_categorie.png')
plt.close()
# Histogram verkochte eenheden
plt.figure(figsize=(8,6))
sns.histplot(data['verkochte_eenheden'], bins=20)
plt.title('Histogram van verkochte eenheden')
plt.xlabel('Verkochte eenheden')
plt.ylabel('Frequentie')
plt.tight_layout()
plt.savefig('histogram_verkochte_eenheden.png')
plt.close()
# Aanroepen van de functie
genereer_rapport(df)
```
Eventueel kun je deze rapportage verder automatiseren met een PDF-generator of Jupyter Notebook exporteren, afhankelijk van je wensen.
Wil je dat ik een voorbeeld maak dat alles automatisch combineert in een rapport in bijvoorbeeld een PDF?
provider: deepseek
model: deepseek-chat
Absoluut! Hier is een gestructureerd plan voor het ontwerpen van uw geautomatiseerd rapport in Seaborn, volledig in het Nederlands.
### Stap 1: Importeer de Benodigde Bibliotheken
```python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from datetime import datetime
# Stel de minimalistische stijl met blauwe accenten in
sns.set_theme(style="whitegrid") # Schone, minimalistische basis
sns.set_palette("Blues") # Blauwe kleurenpalet voor alle grafieken
```
### Stap 2: Laad en Bereid de Data Voor
```python
# VERVANG 'pad/naar/jouw/bestand.csv' MET HET WERKELIJKE PAD
df = pd.read_csv('pad/naar/jouw/bestand.csv')
# Zorg dat de datumkolom het juiste type heeft voor tijdreeksanalyse
df['datum'] = pd.to_datetime(df['datum'])
```
### Stap 3: Bereken de Gevraagde Samenvattende Statistieken
U wilt de **gemiddelde, mediaan en standaarddeviatie** analyseren. Dit zijn meestal het meest relevant voor numerieke kolommen. We richten ons op `verkochte eenheden` en `omzet`.
```python
# Algemene beschrijvende statistieken voor de numerieke kolommen
algemene_statistieken = df[['verkochte eenheden', 'omzet']].describe()
# Bereken specifiek de gewenste metrics per categorie (bijv. per productcategorie)
stats_per_categorie = df.groupby('categorie')[['verkochte eenheden', 'omzet']].agg(['mean', 'median', 'std'])
stats_per_categorie.columns = ['_'.join(col).strip() for col in stats_per_categorie.columns.values]
# Hernoem voor duidelijkheid (optioneel)
stats_per_categorie = stats_per_categorie.rename(columns={
'verkochte eenheden_mean': 'Gem_eenheden',
'verkochte eenheden_median': 'Med_eenheden',
'verkochte eenheden_std': 'Std_eenheden',
'omzet_mean': 'Gem_omzet',
'omzet_median': 'Med_omzet',
'omzet_std': 'Std_omzet'
})
# Toon de samenvattende statistieken in de console
print("Algemene Beschrijvende Statistieken:")
print(algemene_statistieken)
print("\n\nStatistieken per Categorie:")
print(stats_per_categorie)
```
### Stap 4: Maak de Gevraagde Visualisaties
U wilt **boxplots** en **histogrammen**.
```python
# Maak een figuur met meerdere subplots voor een rapportlayout
fig, axes = plt.subplots(2, 2, figsize=(15, 12)) # 2 rijen, 2 kolommen
fig.suptitle('Samenvattingsrapport Verkoopdata', fontsize=16, fontweight='bold')
# 1. Boxplot voor verkochte eenheden per categorie
sns.boxplot(ax=axes[0, 0], data=df, x='categorie', y='verkochte eenheden')
axes[0, 0].set_title('Boxplot: Verkochte Eenheden per Categorie')
axes[0, 0].tick_params(axis='x', rotation=45) # Kantel labels voor leesbaarheid
# 2. Boxplot voor omzet per categorie
sns.boxplot(ax=axes[0, 1], data=df, x='categorie', y='omzet')
axes[0, 1].set_title('Boxplot: Omzet per Categorie')
axes[0, 1].tick_params(axis='x', rotation=45)
# 3. Histogram voor verdeling van verkochte eenheden
sns.histplot(ax=axes[1, 0], data=df, x='verkochte eenheden', kde=True) # kde voegt een lijn toe
axes[1, 0].set_title('Histogram: Verdeling van Verkochte Eenheden')
axes[1, 0].axvline(df['verkochte eenheden'].mean(), color='darkblue', linestyle='--', label=f"Gem: {df['verkochte eenheden'].mean():.2f}")
axes[1, 0].axvline(df['verkochte eenheden'].median(), color='red', linestyle='--', label=f"Med: {df['verkochte eenheden'].median():.2f}")
axes[1, 0].legend()
# 4. Histogram voor verdeling van omzet
sns.histplot(ax=axes[1, 1], data=df, x='omzet', kde=True)
axes[1, 1].set_title('Histogram: Verdeling van Omzet')
axes[1, 1].axvline(df['omzet'].mean(), color='darkblue', linestyle='--', label=f"Gem: {df['omzet'].mean():.2f}")
axes[1, 1].axvline(df['omzet'].median(), color='red', linestyle='--', label=f"Med: {df['omzet'].median():.2f}")
axes[1, 1].legend()
# Pas de layout aan zodat alles netjes past
plt.tight_layout()
# Toon de grafieken
plt.show()
```
### Stap 5: Exporteer het Rapport
U heeft niet expliciet een exportformaat gevraagd. De volgende opties zijn het gebruikelijkst:
**Optie A: Exporteer de Grafiek als Afbeelding (bijv. PNG)**
```python
# Sla de volledige figuur op als een PNG-bestand van hoge kwaliteit
fig.savefig('mijn_verkooprapport.png', dpi=300, bbox_inches='tight')
print("Rapport opgeslagen als 'mijn_verkooprapport.png'")
```
**Optie B: Exporteer de Statistieken naar Excel**
```python
# Maak een Pandas Excel writer en exporteer de twee statistiektabellen naar aparte sheets
with pd.ExcelWriter('samenvattende_statistieken.xlsx') as writer:
algemene_statistieken.to_excel(writer, sheet_name='Algemene Statistieken')
stats_per_categorie.to_excel(writer, sheet_name='Statistieken per Categorie')
print("Statistieken opgeslagen in 'samenvattende_statistieken.xlsx'")
```
### Samenvatting van uw Rapport:
1. **Statistieken:** Het script berekent en toont zowel algemene beschrijvende statistieken (inclusief mean, median, std) als dezezelfde metrics gegroepeerd per productcategorie.
2. **Visualisaties:** Het genereert een dashboard met vier grafieken:
* Twee **boxplots** om de distributie en outliers van `verkochte eenheden` en `omzet` per `categorie` te vergelijken.
* Twee **histogrammen** om de verdeling van `verkochte eenheden` en `omzet` over de hele dataset te tonen, **met verticale stippellijnen voor het gemiddelde (blauw) en de mediaan (rood)**.
3. **Stijl:** Het gebruikt een `whitegrid`-stijl met een `Blues` kleurenpalet voor een minimalistische look met blauwe accenten.
**Volgende Stappen:** Voer dit script uit in uw Jupyter Notebook of Python-omgeving. Zorg ervoor dat u het pad naar uw CSV-bestand correct invult (`'pad/naar/jouw/bestand.csv'`).