Assignment: Create a surface and contour plot of function z-f(x,y) [-5,5] by [-5,51. Take a pick to plot from any of the choices below. (01) f(x,y) = x*y**3-**** (02) f(x,y) = (03) f(x,y) = (04) f(x, y) = cos(abs(x)+abs(y)) - - Use at least 500 points in each direction to discretize domain and create the grid. Make the surface plot red and without grid lines. (***2+3*u**2) *exp(-x**2-y**2) -1/(x**2+y**2) - For contour plot, specify contour levels to go from minimum and maximum 2 values on the entire domain and include at least 15 contour levels. - - Pick a colormap you like I 777 ## Create data import numpy as np import pyvista as pv
1. Import necessary libraries:
- Import NumPy for numerical computations.
- Import PyVista for creating the surface plot.
- Import Matplotlib for creating the contour plot.
2. Define the functions:
- Define the functions `func_01` to `func_04` to represent the mathematical functions `z = f(x, y)` that you can choose from.
3. Create a function to generate the grid:
- Define a function called `create_grid(func)` that takes a function as an argument.
- Within this function:
- Generate evenly spaced values for `x` and `y` using `np.linspace()` to create a grid in the domain `[1, 5]` with 51 points along each axis.
- Use `np.meshgrid()` to create a grid of `(x, y)` values.
- Calculate the corresponding `z` values by applying the provided function to the `(x, y)` grid points.
- Return the `X`, `Y`, and `Z` arrays representing the grid.
4. Choose the function to visualize:
- Call the `create_grid()` function with one of the functions (e.g., `func_01`) to generate the grid for that function.
5. Create a PyVista structured grid:
- Create a PyVista structured grid using `pv.StructuredGrid()` with the generated `X`, `Y`, and `Z` arrays from step 4.
- This structured grid represents the 3D surface to be plotted.
6. Create a surface plot using PyVista:
- Initialize a PyVista plotter object (`p`) for creating the surface plot.
- Add the structured grid to the plot using `p.add_mesh()`.
- Customize the appearance of the surface plot:
- Set the color of the surface to red.
- Hide grid lines using `show_edges=False`.
- Display the surface plot using `p.show()`.
7. Create a contour plot using Matplotlib:
- Create a new Matplotlib figure using `plt.figure()`.
- Generate contour lines using `plt.contourf()` with the `X`, `Y`, and `Z` arrays:
- Specify the number of contour levels (e.g., 15).
- Choose a colormap (e.g., 'viridis').
- Add a colorbar to the plot using `plt.colorbar()`.
- Label the axes (`plt.xlabel()` and `plt.ylabel()`).
- Set a title for the contour plot (`plt.title()`).
- Display the contour plot using `plt.show()`.
8. Run the code:
- Ensure that you select the desired function to visualize by calling `create_grid()` with the appropriate function (e.g., `create_grid(func_01)`).
Step by step
Solved in 4 steps with 2 images