slogan3

Ontwikkel een Seaborn Visualisatie met Geavanceerde Interactieve Widgets en Gebeurtenissen

description

Met deze prompt kun je interactieve visualisaties maken die gebruikers in staat stellen om data dynamisch te verkennen via widgets en interactieve acties. Dit verhoogt de betrokkenheid en maakt diepgaandere analyses mogelijk zonder statische grafieken. Het is een unieke toevoeging binnen Seaborn-toepassingen die verder gaat dan standaard visualisaties en rapportages.

prompt

Help me een Seaborn visualisatie te creëren die geavanceerde interactieve widgets en gebeurtenishandlers bevat om gebruikersinteractie te verbeteren. Beschrijving van mijn dataset: <beschrijf kort je dataset>. Welke soorten interactieve elementen wil ik toevoegen: <bijvoorbeeld dropdowns, sliders, knoppen>. Welke variabelen moeten de ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
no_answer_for_language
error: Generation failed [openai] prompt_id=3690 locale=nl err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3690 locale=en err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3690 locale=de err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3690 locale=fr err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3690 locale=pt err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3690 locale=es err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3690 locale=zh err=OpenAI connection/timeout
provider: deepseek
model: deepseek-chat
Hoi! Voor een interactieve Seaborn visualisatie met widgets raad ik aan om `ipywidgets` in combinatie met Jupyter Notebook te gebruiken. Hier is een complete oplossing: ```python import pandas as pd import seaborn as sns import matplotlib.pyplot as plt from ipywidgets import interact, Dropdown import matplotlib.dates as mdates # Stel pastelkleuren in sns.set_palette("pastel") sns.set_style("whitegrid") # Voorbeeld dataset (vervang met je eigen data) data = { 'productcategorie': ['Electronica', 'Electronica', 'Kleding', 'Kleding', 'Electronica', 'Kleding'], 'verkoopdatum': ['2023-01-15', '2023-04-20', '2023-02-10', '2023-03-25', '2023-01-30', '2023-04-05'], 'omzet': [15000, 18000, 8500, 9200, 16000, 7800], 'aantal': [120, 150, 200, 180, 140, 160] } df = pd.DataFrame(data) df['verkoopdatum'] = pd.to_datetime(df['verkoopdatum']) # Maak dropdown opties categorieën = sorted(df['productcategorie'].unique()) def update_plot(gekozen_categorie): plt.figure(figsize=(12, 6)) # Filter data op gekozen categorie gefilterde_data = df[df['productcategorie'] == gekozen_categorie] # Maak scatterplot scatter = sns.scatterplot( data=gefilterde_data, x='verkoopdatum', y='omzet', size='aantal', sizes=(50, 200), alpha=0.7, hue='aantal', palette='pastel' ) # Styling en annotaties plt.title(f'Kwartaalcijfers - {gekozen_categorie}', fontsize=14, fontweight='bold') plt.xlabel('Verkoopdatum') plt.ylabel('Omzet (€)') plt.xticks(rotation=45) # Formatteer datum-as scatter.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m')) scatter.xaxis.set_major_locator(mdates.MonthLocator()) # Voeg grid toe plt.grid(True, alpha=0.3) # Toon legenda plt.legend(title='Aantal verkopen', bbox_to_anchor=(1.05, 1), loc='upper left') plt.tight_layout() plt.show() # Maak interactieve widget interact(update_plot, gekozen_categorie=Dropdown( options=categorieën, value=categorieën[0], description='Productcategorie:', style={'description_width': 'initial'} )) ``` **Benodigde installaties:** ```bash pip install seaborn matplotlib ipywidgets pandas ``` **Belangrijke features:** - Dropdown menu voor productcategorie selectie - Dynamische update van de scatterplot - Pastelkleuren palette - Grootte van markers gebaseerd op verkoopaantallen - Datum formatting en rotatie - Responsieve layout met legenda **Opmerking:** Deze code werkt het beste in Jupyter Notebook. Voor andere IDE's kun je overwegen om `ipywidgets` te combineren met `matplotlib`'s interactive mode of alternatieven zoals Plotly te onderzoeken voor meer geavanceerde interactiviteit. Wil je dat ik specifieke onderdelen aanpas of uitbreid?