slogan3

Maak Matplotlib Visualisaties met Aangepaste Data Labels en Annotatiestijlen

description

Maakt het mogelijk om belangrijke datapunten en bereiken te benadrukken met gepersonaliseerde labels en annotaties, waardoor je visualisaties informatiever en boeiender worden. Deze prompt biedt meer controle over het uiterlijk en de plaatsing van annotaties in vergelijking met standaard labelmethodes, wat de communicatie van inzichten verbetert.

prompt

try_prompt

Help me een Matplotlib visualisatie te maken met mijn dataset: <beschrijving van je dataset>. Ik wil aangepaste datalabels en annotaties toevoegen die specifieke punten of bereiken benadru ... more
generate_helper
disclaimerOnPageApi image_legal_disclaimer...

ai_answers

provider: openai
model: gpt-4.1-nano
no_answer_for_language
error: Generation failed [openai] prompt_id=3645 locale=nl err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3645 locale=en err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3645 locale=de err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3645 locale=fr err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3645 locale=pt err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3645 locale=es err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3645 locale=zh err=OpenAI connection/timeout
provider: deepseek
model: deepseek-chat
Hier is een complete Python-implementatie met aangepaste annotaties voor temperatuurpieken: ```python import matplotlib.pyplot as plt import numpy as np from datetime import datetime, timedelta # Voorbeeld dataset: uurtemperaturen over een week (168 uren) np.random.seed(42) dagen = 7 uren = 24 * dagen basis_temp = 15 temperatuur = basis_temp + np.random.normal(0, 3, uren) + np.sin(np.linspace(0, 7*np.pi, uren)) * 5 # Tijdsassen creëren start_datum = datetime(2024, 1, 1, 0, 0) tijdstippen = [start_datum + timedelta(hours=i) for i in range(uren)] # Plot opzetten fig, ax = plt.subplots(figsize=(15, 8)) lijn = ax.plot(tijdstippen, temperatuur, 'b-', linewidth=2, alpha=0.7, label='Temperatuur') # Achtergrond opmaak ax.set_facecolor('#f8f9fa') ax.grid(True, alpha=0.3) ax.set_xlabel('Datum en Tijd', fontsize=12, fontweight='bold') ax.set_ylabel('Temperatuur (°C)', fontsize=12, fontweight='bold') ax.set_title('Uurtemperatuurmetingen over een Week', fontsize=16, fontweight='bold', pad=20) # Pieken identificeren (temperaturen boven 20°C) pieken_indices = np.where(temperatuur > 20)[0] pieken_temperaturen = temperatuur[pieken_indices] pieken_tijden = [tijdstippen[i] for i in pieken_indices] # Aangepaste annotaties voor pieken toevoegen for i, (tijd, temp) in enumerate(zip(pieken_tijden, pieken_temperaturen)): # Verschillende kleuren voor verschillende piekniveaus if temp > 25: kleur = '#ff6b6b' # Rood voor zeer hoge pieken elif temp > 22: kleur = '#ffa726' # Oranje voor hoge pieken else: kleur = '#4caf50' # Groen voor normale pieken ax.annotate(f'{temp:.1f}°C', xy=(tijd, temp), xytext=(20, 40), # Positie van de tekst relatief tot het punt textcoords='offset points', fontsize=14, # Grote letters fontweight='bold', color=kleur, ha='center', va='bottom', bbox=dict(boxstyle='round,pad=0.5', facecolor='white', alpha=0.9, edgecolor=kleur), arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=0.3', color=kleur, lw=2)) # Specifieke belangrijke punten benadrukken # Laagste temperatuur laagste_idx = np.argmin(temperatuur) ax.annotate('Laagste: {:.1f}°C'.format(temperatuur[laagste_idx]), xy=(tijdstippen[laagste_idx], temperatuur[laagste_idx]), xytext=(-50, -60), textcoords='offset points', fontsize=11, color='blue', bbox=dict(boxstyle='round,pad=0.5', facecolor='lightblue', alpha=0.8), arrowprops=dict(arrowstyle='->', color='blue')) # Gemiddelde temperatuurlijn gemiddelde = np.mean(temperatuur) ax.axhline(y=gemiddelde, color='red', linestyle='--', alpha=0.7, label=f'Gemiddeld: {gemiddelde:.1f}°C') ax.annotate(f'Weekgemiddelde\n{gemiddelde:.1f}°C', xy=(tijdstippen[100], gemiddelde), xytext=(20, 0), textcoords='offset points', fontsize=10, color='red', backgroundcolor='white') # X-as formatteren voor betere leesbaarheid plt.xticks(rotation=45) fig.autofmt_xdate() # Legenda toevoegen ax.legend(loc='upper right', framealpha=0.9) # Layout optimaliseren plt.tight_layout() # Toon de plot plt.show() # Optioneel: opslaan als bestand # plt.savefig('temperatuur_visualisatie.png', dpi=300, bbox_inches='tight') ``` **Belangrijke kenmerken van deze implementatie:** 1. **Piekannotaties**: Gekleurde pijlen met grote, vetgedrukte tekst die naar temperatuurpieken wijzen 2. **Kleurgradatie**: Verschillende kleuren afhankelijk van de piekhoogte 3. **Aangepaste stijlopties**: - Fontsize: 14-16 voor pieken - Kleuren: groen/oranje/rood op basis van temperatuur - Pijlstijl: gebogen pijlen met aangepaste opmaak 4. **Extra annotaties**: Laagste temperatuur en gemiddelde lijn 5. **Professionele opmaak**: Grid, achtergrondkleur, legenda en responsieve layout **Aanpasopties:** - Verander `fontsize` voor tekstgrootte - Pas `color` aan voor verschillende kleuren - Wijzig `xytext` waarden voor positie-aanpassingen - Verander `arrowprops` voor pijlstijlen De code is modulair opgezet zodat je eenvoudig je eigen dataset kunt invoeren door de `temperatuur` array en `tijdstippen` lijst te vervangen.