slogan3

Ontwikkel Matplotlib Visualisaties met Geavanceerde Interactieve Zoom- en Panfuncties

description

Met deze prompt kun je Matplotlib grafieken maken die gebruikers in staat stellen om gegevens op een interactieve manier te verkennen door in- en uit te zoomen en te pannen. Dit verbetert de gebruikservaring en maakt het makkelijker om patronen en details in complexe datasets te ontdekken, wat met statische visualisaties niet mogelijk is. De prompt levert direct bruikbare Python code die gemakkelijk in bestaande projecten geïntegreerd kan worden.

prompt

Help me een Matplotlib visualisatie te maken voor mijn dataset: <beschrijving van je dataset>. Ik wil geavanceerde interactieve functies toevoegen zoals dynamisch in- en uitzoomen en pannen, zodat gebru ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
no_answer_for_language
error: Generation failed [openai] prompt_id=3644 locale=nl err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3644 locale=en err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3644 locale=de err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3644 locale=fr err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3644 locale=pt err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3644 locale=es err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3644 locale=zh err=OpenAI connection/timeout
provider: deepseek
model: deepseek-chat
Hier is een complete Python-oplossing met interactieve functies en een donker thema: ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib.dates import DateFormatter, HourLocator import matplotlib.dates as mdates from datetime import datetime, timedelta # Genereer voorbeelddata (vervang dit met je eigen dataset) def generate_sample_data(): start_date = datetime(2024, 1, 1) end_date = datetime(2024, 1, 31) hours = int((end_date - start_date).total_seconds() / 3600) dates = [start_date + timedelta(hours=i) for i in range(hours)] temperatures = 10 + 8 * np.sin(np.linspace(0, 4*np.pi, hours)) + np.random.normal(0, 2, hours) return pd.DataFrame({ 'datetime': dates, 'temperature': temperatures }) # Maak de dataset df = generate_sample_data() # Stel het donkere thema in plt.style.use('dark_background') fig, ax = plt.subplots(figsize=(14, 8)) # Plot de temperatuurdata line, = ax.plot(df['datetime'], df['temperature'], color='#FF6B6B', linewidth=2, marker='o', markersize=3, markerfacecolor='#4ECDC4', markeredgewidth=0) # Stel de grafiek in ax.set_title('Temperatuurmetingen per uur - Januari 2024', fontsize=16, fontweight='bold', pad=20, color='white') ax.set_xlabel('Datum en tijd', fontsize=12, labelpad=15, color='lightgray') ax.set_ylabel('Temperatuur (°C)', fontsize=12, labelpad=15, color='lightgray') # Formatteer de x-as voor betere leesbaarheid ax.xaxis.set_major_formatter(DateFormatter('%d-%m\n%H:%M')) ax.xaxis.set_major_locator(mdates.DayLocator(interval=3)) ax.xaxis.set_minor_locator(mdates.HourLocator(interval=6)) # Verbeter de randen en kleuren ax.grid(True, alpha=0.3, color='gray', linestyle='--') ax.tick_params(colors='lightgray') ax.set_facecolor('#2C3E50') # Donkerblauwe achtergrond # Voeg interactieve functies toe plt.subplots_adjust(bottom=0.15) # Ruimte voor navigatiebalk # Activeer standaard interactieve functies plt.rcParams['toolbar'] = 'toolmanager' # Moderne toolbar # Extra interactieve features def on_hover(event): if event.inaxes == ax: # Toon tooltip met exacte waarden cont, ind = line.contains(event) if cont: index = ind['ind'][0] ax.set_title(f'Temperatuur: {df["temperature"].iloc[index]:.1f}°C\n' f'Tijd: {df["datetime"].iloc[index].strftime("%d-%m-%Y %H:%M")}', fontsize=12, color='#FFD93D') fig.canvas.draw_idle() else: ax.set_title('Temperatuurmetingen per uur - Januari 2024', fontsize=16, fontweight='bold', color='white') fig.canvas.draw_idle() # Verbind events fig.canvas.mpl_connect('motion_notify_event', on_hover) # Custom toolbar buttons (optioneel - voor extra controle) from matplotlib.widgets import Button # Zoom reset knop reset_ax = plt.axes([0.8, 0.02, 0.1, 0.04]) reset_button = Button(reset_ax, 'Reset Zoom', color='#34495E', hovercolor='#16A085') reset_button.on_clicked(lambda x: ax.set_xlim(df['datetime'].min(), df['datetime'].max())) # Stel de layout in plt.tight_layout() plt.show() ``` **Belangrijke functies die zijn toegevoegd:** 1. **Dynamisch in-/uitzoomen**: Standaard muiswiel functionaliteit 2. **Pannen**: Klik en sleep met linkermuisknop 3. **Hover effect**: Toont exacte waarden bij mouse-over 4. **Reset knop**: Keert terug naar volledig overzicht 5. **Donker thema**: Professioneel donker kleurenschema 6. **Responsieve toolbar**: Moderne navigatiebalk **Aanvullende opties die je kunt toevoegen:** ```python # Voor extra interactiviteit, voeg deze toe na plt.show(): print(""" Gebruiksaanwijzing: - Muiswiel: In-/uitzoomen - Linkermuisknop + slepen: Pannen - Rechtermuisknop: Reset view - Hover: Toon details - Reset knop: Volledig overzicht """) ``` **Installatievereisten:** ```bash pip install matplotlib pandas numpy ``` Deze code biedt een complete interactieve ervaring met een professioneel donker thema en alle gevraagde functionaliteiten!