import micropip await micropip.install("matplotlib") await micropip.install("numpy") import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # Create figure fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # Define the plane: z = f(x, y) def plane(x, y): return x + y # Example linear plane # Define the region R in xy-plane (x, y bounds) x = np.linspace(0, 1, 100) y = np.linspace(0, 1, 100) x, y = np.meshgrid(x, y) # Mask or define the region (for simplicity, using a circular region here) R = np.sqrt(x**2 + y**2) <= 0.5 # Circular region z = plane(x, y) * R # Apply mask to the plane # Plot the plane over the region ax.plot_surface(x, y, z, color='blue', alpha=0.6, rstride=100, cstride=100) # Projection of the region onto the xy-plane (the green region) ax.plot_surface(x, y, np.zeros_like(z), where=R, color='green', alpha=0.3) # Plot the vertical lines (from the xy-plane to the surface) ax.plot_wireframe(x, y, z, color='green', alpha=0.3) # Set axis labels ax.set_xlabel('X-axis') ax.set_ylabel('Y-axis') ax.set_zlabel('Z-axis') # Show plot plt.show()