slogan3

Ontwikkel een Seaborn Visualisatie voor Tijdreeksdata met Trend- en Seizoensanalyse

description

Met deze prompt kan de gebruiker effectief tijdreeksdata visualiseren en analyseren met Seaborn, inclusief het ontdekken van trends en seizoenspatronen. De mogelijkheid om voortschrijdende gemiddelden en seizoenscorrecties toe te voegen maakt diepgaandere inzichten mogelijk. Dit gaat verder dan standaard visualisaties door specifieke focus op tijdselementen en relevante analyseopties.

prompt

Help me een Seaborn visualisatie te maken voor mijn tijdreeksdataset om trends en seizoenspatronen te analyseren. Beschrijving van mijn dataset: <beschrijf je tijdreeksdataset>. Welke tijdsvariabele gebruik ik: <geef de kolomnaam van de tijdsvariabele>. Welke meetwaarden wil ik visualiseren: <noem de relevan ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een voorbeeld van hoe je een Seaborn-lijngrafiek kunt maken om je temperatuur- en neerslaggegevens te visualiseren, inclusief een 30-daags voortschrijdend gemiddelde, met groene lijnen en annotaties bij pieken. ```python import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # Voorbeeld: Laad je dataset # df = pd.read_csv('jouw_dataset.csv', parse_dates=['datum']) # Zorg dat 'datum' als datetime is geïnterpreteerd # df['datum'] = pd.to_datetime(df['datum']) # Bereken het 30-daags voortschrijdend gemiddelde voor temperatuur en neerslag df['temp_rolling'] = df['temperatuur'].rolling(window=30).mean() df['neerslag_rolling'] = df['neerslag'].rolling(window=30).mean() # Plotten van de temperatuur plt.figure(figsize=(14, 6)) sns.lineplot(data=df, x='datum', y='temperatuur', label='Temperatuur', color='green') sns.lineplot(data=df, x='datum', y='temp_rolling', label='Voorschrijdend Gemiddelde (30 dagen)', color='darkgreen') # Annotaties bij pieken in temperatuur peak_temp = df.loc[df['temperatuur'].idxmax()] plt.annotate('Warmste dag', xy=(peak_temp['datum'], peak_temp['temperatuur']), xytext=(peak_temp['datum'], peak_temp['temperatuur']+2), arrowprops=dict(facecolor='black', shrink=0.05), fontsize=9, color='black') # Plotten van neerslag plt.figure(figsize=(14, 6)) sns.lineplot(data=df, x='datum', y='neerslag', label='Neerslag', color='blue') sns.lineplot(data=df, x='datum', y='neerslag_rolling', label='Voorschrijdend Gemiddelde (30 dagen)', color='darkblue') # Annotaties bij pieken in neerslag peak_neerslag = df.loc[df['neerslag'].idxmax()] plt.annotate('Max neerslag', xy=(peak_neerslag['datum'], peak_neerslag['neerslag']), xytext=(peak_neerslag['datum'], peak_neerslag['neerslag']+5), arrowprops=dict(facecolor='black', shrink=0.05), fontsize=9, color='black') # Stijl en labels plt.title('Temperatuur en Neerslag in Amsterdam (5 jaar)', fontsize=16) plt.xlabel('Datum') plt.ylabel('Waarde') plt.legend() plt.grid(True) plt.tight_layout() plt.show() ``` **Kort samengevat:** - Gebruik `lineplot` voor lijngrafieken. - Voeg een 30-daags voortschrijdend gemiddelde toe voor zowel temperatuur als neerslag. - Gebruik groene lijnen voor temperatuur en donkere groen voor het gemiddelde. - Annotaties bij de hoogste temperatuur en maximale neerslag. - Pas de plotformattering aan naar wens. Mocht je nog vragen of wensen hebben, laat het gerust weten!
provider: deepseek
model: deepseek-chat
Absoluut! Hier is een stapsgewijze handleiding om de gevraagde visualisatie te maken met Seaborn en pandas in Python. ### Stap 1: Importeer de benodigde bibliotheken ```python import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from datetime import datetime ``` ### Stap 2: Stel de stijl in en prepareer je data ```python # Stel Seaborn stijl in sns.set_style("whitegrid") sns.set_palette("viridis") # Laad je dataset (vervang 'jouw_dataset.csv' met je bestand) df = pd.read_csv('jouw_dataset.csv') # Zet de datumkolom om naar datetime en stel in als index df['datum'] = pd.to_datetime(df['datum']) df.set_index('datum', inplace=True) # Sorteer op datum voor tijdreeksanalyse df = df.sort_index() ``` ### Stap 3: Bereken het 30-daags voortschrijdend gemiddelde ```python # Voeg voortschrijdend gemiddelde toe voor temperatuur df['temp_30d_avg'] = df['temperatuur'].rolling(window=30).mean() # Optioneel: ook voor neerslag als je dat wilt df['neerslag_30d_avg'] = df['neerslag'].rolling(window=30).mean() ``` ### Stap 4: Creëer de visualisatie ```python # Maak een figuur met subplots fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(15, 10)) # Temperatuur plot sns.lineplot(data=df, x=df.index, y='temperatuur', ax=ax1, color='lightgreen', alpha=0.7, label='Dagelijkse Temperatuur') sns.lineplot(data=df, x=df.index, y='temp_30d_avg', ax=ax1, color='darkgreen', linewidth=2.5, label='30-daags Gemiddelde') # Neerslag plot sns.lineplot(data=df, x=df.index, y='neerslag', ax=ax2, color='lightblue', alpha=0.7, label='Dagelijkse Neerslag') sns.lineplot(data=df, x=df.index, y='neerslag_30d_avg', ax=ax2, color='darkblue', linewidth=2.5, label='30-daags Gemiddelde') # Annotatie voor temperatuur pieken temp_peaks = df.nlargest(5, 'temperatuur') for idx, row in temp_peaks.iterrows(): ax1.annotate(f'{row["temperatuur"]}°C', xy=(idx, row['temperatuur']), xytext=(10, 10), textcoords='offset points', arrowprops=dict(arrowstyle='->', color='darkred'), fontweight='bold') # Annotatie voor neerslag pieken neerslag_peaks = df.nlargest(5, 'neerslag') for idx, row in neerslag_peaks.iterrows(): ax2.annotate(f'{row["neerslag"]}mm', xy=(idx, row['neerslag']), xytext=(10, 10), textcoords='offset points', arrowprops=dict(arrowstyle='->', color='darkred'), fontweight='bold') # Stel labels en titels in ax1.set_title('Temperatuur Trends in Amsterdam (5 Jaar)', fontsize=16, fontweight='bold') ax1.set_ylabel('Temperatuur (°C)') ax1.legend() ax2.set_title('Neerslag Trends in Amsterdam (5 Jaar)', fontsize=16, fontweight='bold') ax2.set_ylabel('Neerslag (mm)') ax2.set_xlabel('Datum') ax2.legend() # Rotatie van x-as labels voor betere leesbaarheid plt.xticks(rotation=45) # Layout aanpassen plt.tight_layout() plt.show() ``` ### Stap 5: Optionele seizoensanalyse ```python # Voor seizoenspatronen: maandelijkse gemiddelden maandelijkse_data = df.resample('M').mean() plt.figure(figsize=(12, 6)) sns.heatmap(maandelijkse_data.pivot_table(index=maandelijkse_data.index.month, columns=maandelijkse_data.index.year, values='temperatura'), cmap='YlOrRd', annot=True, fmt='.1f') plt.title('Maandelijkse Temperatuurpatronen per Jaar') plt.xlabel('Jaar') plt.ylabel('Maand') plt.show() ``` ### Belangrijke aanpassingen die je mogelijk moet maken: 1. **Kolomnamen**: Controleer of 'temperatuur' en 'neerslag' overeenkomen met je daadwerkelijke kolomnamen 2. **Datumformaat**: Pas `pd.to_datetime()` aan naar het formaat in je dataset 3. **Piekdetectie**: Je kunt de annotatiecriteria aanpassen (bijv. alleen pieken boven bepaalde drempelwaarden) Deze code geeft je een complete analyse met: - Groene lijnen zoals gevraagd - 30-daags voortschrijdend gemiddelde - Annotaties bij extreme pieken - Duidelijke seizoenspatronen zichtbaar - Professionele opmaak met Seaborn Succes met je analyse!