slogan3

Ontwerp Matplotlib Visualisaties met Geavanceerde 3D-Plotten

description

Met deze prompt kun je geavanceerde 3D-visualisaties maken die meer inzicht geven in complexe datasets door gebruik van dimensionale diepte. Het lost beperkingen van 2D-plotten op en helpt je data op een intuïtieve manier te presenteren. De directe Python-code maakt implementatie snel en eenvoudig.

prompt

Help me een Matplotlib visualisatie te maken met geavanceerde 3D-plotten voor mijn dataset: <beschrijving van je dataset>. Ik wil gebruik maken van 3D grafiektypen zoals scatter, surface, of wireframe ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld Python-code om een geavanceerde 3D-visualisatie te maken met Matplotlib, inclusief scatter- en surface-plotten, met de door jou gevraagde aanpassingen: ```python import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # Voorbeeld dataset: vervang deze door je eigen data np.random.seed(0) num_points = 50 locaties = np.random.uniform(low=0, high=100, size=(num_points, 2)) temperatuur = np.random.uniform(low=15, high=30, size=num_points) vochtigheid = np.random.uniform(low=30, high=90, size=num_points) hoogte = np.random.uniform(low=0, high=200, size=num_points) # Maak een grid voor surface plot (bijvoorbeeld op basis van locatie) grid_x, grid_y = np.meshgrid( np.linspace(locaties[:,0].min(), locaties[:,0].max(), 20), np.linspace(locaties[:,1].min(), locaties[:,1].max(), 20) ) # Interpoleer temperatuur en vochtigheid voor grid (optioneel, afhankelijk van data) from scipy.interpolate import griddata temp_grid = griddata(locaties, temperatuur, (grid_x, grid_y), method='cubic') vocht_grid = griddata(locaties, vochtigheid, (grid_x, grid_y), method='cubic') # Maak de plot fig = plt.figure(figsize=(12, 8)) ax = fig.add_subplot(111, projection='3d') # Scatter plot van meetpunten ax.scatter(locaties[:,0], locaties[:,1], hoogte, c=temperatuur, cmap='Greens', s=50, label='Meetpunten') # Voeg een colorbar toe voor temperatuur cbar = plt.colorbar(plt.cm.ScalarMappable(cmap='Greens'), ax=ax, pad=0.1) cbar.set_label('Temperatuur (°C)') # Surface plot van temperatuur op grid surf = ax.plot_surface(grid_x, grid_y, hoogte, facecolors=plt.cm.Greens( (np.nan_to_num(temp_grid - np.nanmin(temp_grid)) / (np.nanmax(temp_grid) - np.nanmin(temp_grid)) )), alpha=0.6) # Labels ax.set_xlabel('X locatie') ax.set_ylabel('Y locatie') ax.set_zlabel('Hoogte (m)') ax.set_title('3D Visualisatie van Meetgegevens') # Rotatie van de x-as ax.view_init(30, 45) # 30 graden elevatie, 45 graden azimut # Toon de plot plt.legend() plt.show() ``` **Wat doet deze code?** - Maakt een scatter plot van meetpunten met kleuren gebaseerd op temperatuur. - Interpoleert temperatuur en vochtigheid over een grid voor een surface plot. - Visualiseert de hoogte op de x-y locatie. - Past kleuren, labels, en rotatie toe zoals gevraagd. Je kunt de dataset aanpassen door je eigen meetwaarden in te voeren.
provider: deepseek
model: deepseek-chat
Hier is een complete Python code voor een geavanceerde 3D visualisatie met Matplotlib: ```python import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # Voorbeeld dataset (vervang met je eigen data) # Temperatuur (°C), Vochtigheid (%), Hoogte (m) np.random.seed(42) n_points = 100 temperatuur = np.random.uniform(10, 30, n_points) vochtigheid = np.random.uniform(40, 90, n_points) hoogte = np.random.uniform(0, 1000, n_points) # Creëer de figuur en 3D assen fig = plt.figure(figsize=(12, 8)) ax = fig.add_subplot(111, projection='3d') # 3D scatter plot met groene kleuren scatter = ax.scatter(temperatuur, vochtigheid, hoogte, c=hoogte, cmap='Greens', s=50, alpha=0.8, edgecolor='darkgreen') # Surface plot voorbeeld (vereist grid data) # Eerst creëren we een grid voor surface plot X = np.linspace(min(temperatuur), max(temperatuur), 20) Y = np.linspace(min(vochtigheid), max(vochtigheid), 20) X, Y = np.meshgrid(X, Y) Z = np.sin(X/5) * np.cos(Y/10) * 500 + 500 # Voorbeeld oppervlak # Surface plot toevoegen surface = ax.plot_surface(X, Y, Z, alpha=0.3, cmap='Greens', edgecolor='darkgreen', linewidth=0.5) # Wireframe plot toevoegen wireframe = ax.plot_wireframe(X, Y, Z, color='darkgreen', alpha=0.2, linewidth=0.5) # As labels en titel ax.set_xlabel('Temperatuur (°C)', fontsize=12, fontweight='bold') ax.set_ylabel('Vochtigheid (%)', fontsize=12, fontweight='bold') ax.set_zlabel('Hoogte (m)', fontsize=12, fontweight='bold') ax.set_title('3D Visualisatie: Temperatuur, Vochtigheid en Hoogte', fontsize=14, fontweight='bold') # Kleurenbalk toevoegen cbar = fig.colorbar(scatter, ax=ax, shrink=0.5, aspect=20) cbar.set_label('Hoogte (m)', fontsize=10) # Rotatie instellen: 30 graden rond x-as ax.view_init(elev=30, azim=0) # elev=30 graden voor x-as rotatie # Grid en achtergrond ax.grid(True, alpha=0.3) ax.xaxis.pane.fill = False ax.yaxis.pane.fill = False ax.zaxis.pane.fill = False # Beeldverhouding gelijk maken voor betere 3D weergave ax.set_box_aspect([1,1,1]) plt.tight_layout() plt.show() ``` **Aanpassingen die je kunt maken:** 1. **Eigen data laden**: ```python # Vervang de voorbeelddata met je eigen dataset # temperatuur = je_temperatuur_data # vochtigheid = je_vochtigheid_data # hoogte = je_hoogte_data ``` 2. **Kleuren aanpassen**: - Verander `cmap='Greens'` naar andere kleurenkaarten - Gebruik `color='#00FF00'` voor specifieke hex kleuren 3. **Rotatie aanpassen**: ```python # elev = hoogte (x-as rotatie), azim = azimuth (y-as rotatie) ax.view_init(elev=45, azim=30) # Experimenteer met waarden ``` 4. **Alleen scatter plot** (als surface niet nodig is): ```python # Verwijder de plot_surface en plot_wireframe regels ``` De code bevat zowel scatter plots, surface plots als wireframe plots in groene tinten met duidelijke labels en de gevraagde 30 graden rotatie rond de x-as.