slogan3

Maak Matplotlib-visualisaties met aangepaste export- en deelopties

description

Met deze prompt kun je Matplotlib-visualisaties maken die niet alleen visueel aantrekkelijk zijn, maar ook praktisch voor verspreiding en samenwerking. Door export- en deelmogelijkheden direct in de visualisatiecode op te nemen, bespaar je tijd en verbeter je de efficiëntie van je workflow, waardoor het eenvoudiger wordt om je data-inzichten in verschillende formaten en op diverse platforms te presenteren en te delen.

prompt

Help me een Matplotlib-visualisatie te maken voor mijn dataset: <beschrijf je dataset>. Ik wil dat de visualisatie exportmogelijkheden ondersteunt in formaten zoals <gewenste exportformaten, bijvoorbeeld PNG, SVG, PDF> en opties vo ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
no_answer_for_language
error: Generation failed [openai] prompt_id=3643 locale=nl err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3643 locale=en err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3643 locale=de err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3643 locale=fr err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3643 locale=pt err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3643 locale=es err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3643 locale=zh err=OpenAI connection/timeout
provider: deepseek
model: deepseek-chat
Hier is een complete Python-oplossing met Matplotlib die aan al uw vereisten voldoet: ```python import matplotlib.pyplot as plt import numpy as np import pandas as pd from datetime import datetime import smtplib from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders import os # Voorbeeld dataset (vervang met uw eigen data) maanden = ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'] verkopen = [12000, 15000, 18000, 21000, 24000, 27000, 30000, 28000, 32000, 35000, 38000, 42000] # Stijl instellen plt.style.use('default') fig, ax = plt.subplots(figsize=(12, 7)) # Kleuren instellen (blauw en grijs) kleuren = ['#1f77b4', '#7f7f7f'] # Matplotlib standaard blauw en grijs # Data plotten bars = ax.bar(maanden, verkopen, color=kleuren[0], alpha=0.8, edgecolor='white') # Stijl en layout aanpassingen ax.set_facecolor('#f8f9fa') # Lichtgrijze achtergrond fig.patch.set_facecolor('white') # Rasterlijnen toevoegen ax.grid(True, alpha=0.3, linestyle='--', color=kleuren[1]) ax.set_axisbelow(True) # Zorgt dat grid achter de bars staat # Assen labels en titel ax.set_xlabel('Maand', fontsize=12, fontweight='bold', color=kleuren[1]) ax.set_ylabel('Verkoopbedrag (€)', fontsize=12, fontweight='bold', color=kleuren[1]) ax.set_title('Maandelijkse Verkoopcijfers 2023', fontsize=16, fontweight='bold', pad=20) # Waarden boven de bars plaatsen for bar in bars: height = bar.get_height() ax.text(bar.get_x() + bar.get_width()/2., height + 500, f'€{height:,.0f}'.replace(',', '.'), # Europese notatie ha='center', va='bottom', fontsize=10, fontweight='bold') # Y-as formatteren voor Europese notatie ax.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, p: f'€{x:,.0f}'.replace(',', '.'))) # Layout optimaliseren plt.xticks(rotation=45) plt.tight_layout() # Export functies def export_grafiek(formaat): """Exporteer de grafiek in verschillende formaten""" bestandsnaam = f"verkoopcijfers_2023_{datetime.now().strftime('%Y%m%d_%H%M%S')}" formaten = { 'png': {'ext': '.png', 'dpi': 300}, 'svg': {'ext': '.svg', 'dpi': None}, 'pdf': {'ext': '.pdf', 'dpi': None} } if formaat in formaten: export_bestand = bestandsnaam + formaten[formaat]['ext'] plt.savefig(export_bestand, format=formaat, dpi=formaten[formaat]['dpi'], bbox_inches='tight', facecolor=fig.get_facecolor()) print(f"Grafiek geëxporteerd als: {export_bestand}") return export_bestand else: print("Ongeldig formaat. Kies uit: png, svg, pdf") return None def verstuur_email(ontvanger, bijlage_pad): """Verstuur grafiek via email (vereist SMTP configuratie)""" try: # SMTP configuratie (pas aan naar uw email provider) smtp_server = "smtp.gmail.com" smtp_port = 587 afzender_email = "uw_email@gmail.com" wachtwoord = "uw_wachtwoord" # Email opstellen msg = MIMEMultipart() msg['From'] = afzender_email msg['To'] = ontvanger msg['Subject'] = "Maandelijkse Verkoopcijfers 2023" body = "Bijgevoegd vindt u de maandelijkse verkoopcijfers voor 2023." msg.attach(MIMEText(body, 'plain')) # Bijlage toevoegen with open(bijlage_pad, "rb") as attachment: part = MIMEBase('application', 'octet-stream') part.set_payload(attachment.read()) encoders.encode_base64(part) part.add_header('Content-Disposition', f'attachment; filename= {os.path.basename(bijlage_pad)}') msg.attach(part) # Verbinding maken en email versturen server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() server.login(afzender_email, wachtwoord) text = msg.as_string() server.sendmail(afzender_email, ontvanger, text) server.quit() print(f"Email succesvol verstuurd naar: {ontvanger}") except Exception as e: print(f"Fout bij verzenden email: {str(e)}") def web_embed_code(): """Genereer HTML embed code voor web""" embed_code = f""" <!-- Embed code voor verkoopgrafiek 2023 --> <div style="text-align: center;"> <img src="verkoopcijfers_2023.png" alt="Maandelijkse Verkoopcijfers 2023" style="max-width: 100%; height: auto; border: 1px solid #ddd; border-radius: 5px;"> <p style="color: #666; font-size: 12px; margin-top: 5px;"> Maandelijkse verkoopcijfers 2023 - Laatst bijgewerkt: {datetime.now().strftime('%d-%m-%Y')} </p> </div> """ print("HTML embed code gegenereerd:") print(embed_code) return embed_code # Toon de grafiek plt.show() # Gebruiksvoorbeelden (uncomment om te gebruiken): """ # Exporteer als PNG export_bestand = export_grafiek('png') # Exporteer als SVG export_grafiek('svg') # Exporteer als PDF export_grafiek('pdf') # Verstuur via email (configureer eerst SMTP instellingen) # verstuur_email("ontvanger@voorbeeld.nl", export_bestand) # Genereer web embed code web_embed_code() """ ``` Deze code bevat: **Visualisatie Kenmerken:** - Blauwe bars met grijze achtergrond en rasterlijnen - Professionele Europese valuta-notatie (€ met punt als scheiding) - Gelabelde assen met duidelijke titels - Responsieve layout **Exportmogelijkheden:** - PNG (hoogwaardige 300 DPI) - SVG (vector formaat) - PDF (print-vriendelijk) **Deelopties:** - Email verzending via SMTP - HTML embed code voor websites - Automatische bestandsnaamgeneratie met timestamp **Gebruik:** 1. Vervang de voorbeelddata met uw eigen verkoopcijfers 2. Configureer email instellingen voor SMTP 3. Uncomment de gewenste export/deel functies 4. Pas kleuren en stijl verder aan naar wens De grafiek wordt automatisch opgeslagen met een timestamp in de bestandsnaam om versiebeheer mogelijk te maken.