Ontwikkel een Python Script voor Data Visualisatie en Analyse
description
Met deze prompt kan de gebruiker eenvoudig een Python script maken dat complexe data inzichtelijk maakt door middel van visualisaties en analyse. Het helpt de gebruiker om de juiste grafieken te kiezen, de analyse te begrijpen en verhoogt de datavaardigheden concreet. Dit is beter dan algemene scripts doordat het praktische inzicht en interpretatie biedt, niet alleen codegenereert.
prompt
Help me een Python script te schrijven dat data visualiseert en analyseert met behulp van <geef het type data of dataset op>. Inclusief uitleg over welke ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een stapsgewijze gids en een voorbeeld Python-script om je financiële kwartaalrapporten te visualiseren en te analyseren met omzet per regio, gebaseerd op je CSV-bestand met kolommen voor datum, product en omzet.
Stap 1: Installatie van benodigde libraries
Zorg dat je de volgende Python libraries hebt geïnstalleerd:
- pandas
- matplotlib
- seaborn
- numpy
Je kunt ze installeren via pip:
```bash
pip install pandas matplotlib seaborn numpy
```
Stap 2: Inladen en voorbereiden van data
Lees je CSV bestand in en parseer de datums. Vervolgens groepeer je de data op kwartaal en regio (als regio kolom aanwezig is, anders moet je regio toevoegen of aanpassen).
Stap 3: Visualisaties kiezen
- **Lijn- of staafdiagrammen** voor het tonen van omzet per kwartaal per regio.
- **Gestapelde staafdiagrammen** om de bijdrage van elke regio aan het totaal te laten zien.
- **Boxplots** voor verdelingen van omzet per regio.
Stap 4: Script voorbeeld
```python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Laad de dataset
df = pd.read_csv('jouw_gegevens.csv', parse_dates=['datum'])
# Als regio niet in dataset staat, voeg regio toe of wijzig deze regel
# Bijvoorbeeld: df['regio'] = ... (afhankelijk van je data)
# Voeg kwartaal en jaar kolommen toe
df['jaar'] = df['datum'].dt.year
df['kwartaal'] = df['datum'].dt.to_period('Q')
# Groepeer data op kwartaal en regio
# Als je regio kolom niet hebt, moet je deze toevoegen
# Bijvoorbeeld: df['regio'] = 'Regio1' of gebaseerd op andere data
groepering = df.groupby(['jaar', 'kwartaal', 'regio'])['omzet'].sum().reset_index()
# Maak een nieuwe kolom voor kwartaal label
groepering['kwartaal_label'] = groepering['jaar'].astype(str) + ' Q' + groepering['kwartaal'].dt.quarter.astype(str)
# Visualisatie 1: Omzet per kwartaal per regio (Lijnplot)
plt.figure(figsize=(12, 6))
sns.lineplot(data=groepering, x='kwartaal_label', y='omzet', hue='regio', marker='o')
plt.title('Omzet per kwartaal per regio')
plt.xlabel('Kwartaal')
plt.ylabel('Omzet')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
# Visualisatie 2: Gestapelde staafdiagram van omzet per kwartaal per regio
pivot_df = groepering.pivot(index='kwartaal_label', columns='regio', values='omzet')
pivot_df.plot(kind='bar', stacked=True, figsize=(12, 6))
plt.title('Gestapelde omzet per kwartaal per regio')
plt.xlabel('Kwartaal')
plt.ylabel('Omzet')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
# Visualisatie 3: Omzet verdeling per regio (boxplot)
plt.figure(figsize=(8,6))
sns.boxplot(data=df, x='regio', y='omzet')
plt.title('Verdeling van omzet per regio')
plt.xlabel('Regio')
plt.ylabel('Omzet')
plt.tight_layout()
plt.show()
```
**Uitleg van visualisaties en interpretatie:**
- **Lijnplot**: Laat trends zien in omzet per regio over de kwartalen. Het helpt om seizoenspatronen of groei/daling te identificeren.
- **Gestapelde bar chart**: Toont de bijdrage van elke regio aan het totaal per kwartaal, handig om de verhouding en veranderingen over tijd te zien.
- **Boxplot**: Geeft de spreiding en mediane omzet per regio, nuttig om te ontdekken welke regio’s consistent hoge of lage omzet hebben.
**Aanbevelingen voor interpretatie:**
- Kijk naar stijgende of dalende trends in de lijnplot om de prestaties per regio te evalueren.
- Let op regio’s die een groot of groeiend aandeel hebben in de gestapelde bar chart.
- Gebruik de boxplots om te bepalen of er grote variatie in omzet per regio is en of er uitschieters zijn.
Als je specifieke regio’s hebt of meer gedetailleerde analyses wilt, kun je de code aanpassen of uitbreiden.
provider: deepseek
model: deepseek-chat
Hallo! Ik help je graag een Python script te schrijven voor de visualisatie en analyse van financiële kwartaalrapporten. Hier is een complete oplossing:
## Vereiste libraries
```python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from datetime import datetime
```
## Data inladen en voorbereiden
```python
# Data inladen
df = pd.read_csv('financiële_data.csv')
# Datum kolom omzetten naar datetime
df['datum'] = pd.to_datetime(df['datum'])
# Kwartaal en jaar extraheren
df['kwartaal'] = df['datum'].dt.quarter
df['jaar'] = df['datum'].dt.year
# Controleer de data
print(df.head())
print(df.info())
```
## Meest geschikte visualisaties:
### 1. Staafdiagram per kwartaal en regio
```python
def visualiseer_kwartaal_omzet(df):
# Groepeer data per kwartaal en regio
kwartaal_data = df.groupby(['jaar', 'kwartaal', 'regio'])['omzet'].sum().reset_index()
# Maak een combinatie van jaar-kwartaal
kwartaal_data['periode'] = kwartaal_data['jaar'].astype(str) + ' Q' + kwartaal_data['kwartaal'].astype(str)
plt.figure(figsize=(12, 8))
sns.barplot(data=kwartaal_data, x='periode', y='omzet', hue='regio')
plt.title('Omzet per kwartaal per regio')
plt.xlabel('Kwartaal')
plt.ylabel('Omzet (€)')
plt.xticks(rotation=45)
plt.legend(title='Regio')
plt.tight_layout()
plt.show()
```
### 2. Gestapeld staafdiagram
```python
def visualiseer_gestapelde_omzet(df):
pivot_data = df.pivot_table(values='omzet',
index=['jaar', 'kwartaal'],
columns='regio',
aggfunc='sum').fillna(0)
pivot_data.plot(kind='bar', stacked=True, figsize=(12, 8))
plt.title('Gestapelde omzet per kwartaal per regio')
plt.xlabel('Kwartaal (Jaar-Q)')
plt.ylabel('Omzet (€)')
plt.legend(title='Regio')
plt.tight_layout()
plt.show()
```
### 3. Lijndiagram voor trendanalyse
```python
def visualiseer_trends(df):
plt.figure(figsize=(12, 8))
for regio in df['regio'].unique():
regio_data = df[df['regio'] == regio]
trend_data = regio_data.groupby(['jaar', 'kwartaal'])['omzet'].sum()
trend_data.plot(label=regio, marker='o')
plt.title('Omzet trends per regio over tijd')
plt.xlabel('Tijd (per kwartaal)')
plt.ylabel('Omzet (€)')
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()
```
### 4. Heatmap voor seizoenspatronen
```python
def visualiseer_seizoenspatronen(df):
# Maak een pivot table voor de heatmap
heatmap_data = df.pivot_table(values='omzet',
index='regio',
columns='kwartaal',
aggfunc='sum')
plt.figure(figsize=(10, 6))
sns.heatmap(heatmap_data, annot=True, fmt='.0f', cmap='YlOrRd')
plt.title('Omzet per regio per kwartaal (Heatmap)')
plt.xlabel('Kwartaal')
plt.ylabel('Regio')
plt.tight_layout()
plt.show()
```
## Data analyse functies
```python
def analyseer_groei(df):
# Bereken kwartaal-op-kwartaal groei per regio
resultaten = []
for regio in df['regio'].unique():
regio_data = df[df['regio'] == regio]
regio_data = regio_data.groupby(['jaar', 'kwartaal'])['omzet'].sum().reset_index()
regio_data['qoq_groei'] = regio_data['omzet'].pct_change() * 100
laatste_groei = regio_data['qoq_groei'].iloc[-1] if len(regio_data) > 1 else 0
gem_groei = regio_data['qoq_groei'].mean()
resultaten.append({
'regio': regio,
'laatste_qoq_groei': round(laatste_groei, 2),
'gemiddelde_groei': round(gem_groei, 2),
'totale_omzet': regio_data['omzet'].sum()
})
return pd.DataFrame(resultaten)
def bereken_marktaandeel(df):
totale_omzet = df['omzet'].sum()
marktaandeel = df.groupby('regio')['omzet'].sum() / totale_omzet * 100
return marktaandeel.round(2)
```
## Hoofdscript
```python
if __name__ == "__main__":
# Laad en prepareer data
df = pd.read_csv('financiële_data.csv')
df['datum'] = pd.to_datetime(df['datum'])
df['kwartaal'] = df['datum'].dt.quarter
df['jaar'] = df['datum'].dt.year
# Voer visualisaties uit
visualiseer_kwartaal_omzet(df)
visualiseer_gestapelde_omzet(df)
visualiseer_trends(df)
visualiseer_seizoenspatronen(df)
# Voer analyses uit
groei_analyse = analyseer_groei(df)
marktaandeel = bereken_marktaandeel(df)
print("Groei analyse:")
print(groei_analyse)
print("\nMarktaandeel per regio:")
print(marktaandeel)
```
## Interpretatie van resultaten:
### 📊 **Staafdiagram interpretatie:**
- Vergelijk omzet tussen regio's per kwartaal
- Identificeer seizoenspatronen
- Spot outliers of ongebruikelijke trends
### 📈 **Trendlijn interpretatie:**
- Opwaartse trend = groeiende markt
- Neerwaartse trend = krimpende markt
- Cyclische patronen = seizoensinvloeden
### 🔥 **Heatmap interpretatie:**
- Donkerder kleuren = hogere omzet
- Identificeer sterke/zwakke kwartalen per regio
- Vergelijk prestaties tussen regio's
### 📋 **Groei analyse:**
- Positieve QoQ groei = gezond bedrijf
- Negatieve groei = waarschuwingsteken
- Vergelijk groeicijfers tussen regio's
### 💡 **Aanbevelingen:**
1. Investeer in regio's met hoge groei
2. Analyseer oorzaken van tegenvallende prestaties
3. Pas strategie aan op basis van seizoenspatronen
4. Benchmark prestaties tegen industriegemiddelden
Dit script geeft je een complete analyse van je financiële kwartaalgegevens met duidelijke visualisaties en actiegerichte inzichten!