使用Matplotlib绘制z = xy + sqrt(xy)的曲面图
使用 Python 的 `matplotlib` 库和 `numpy` 库可以绘制 `z = xy + sqrt(xy)` 的曲面。以下是实现代码: ```python import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 定义 x 和 y 的取值范围 x = np.linspace(-6, 6, 100) y = np.linspace(-6, 6, 100) # 生成网格点坐标矩阵 X, Y = np.meshgrid(x, y) # 计算 z 值,注意要避免负数平方根 # 这里使用 np.where 函数,当 xy >= 0 时计算 z,否则设为 np.nan Z = np.where(X * Y >= 0, X * Y + np.sqrt(X * Y), np.nan) # 创建一个 3D 图形对象 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 绘制曲面 surf = ax.plot_surface(X, Y, Z, cmap='viridis', edgecolor='none') # 设置坐标轴标签 ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') # 设置 plt.title('Surface plot of z = xy + sqrt(xy)') # 添加颜色条 fig.colorbar(surf, shrink=0.5, aspect=5) # 显示图形 plt.show() ``` ### 代码解释 1. **导入必要的库**:导入 `numpy`、`matplotlib.pyplot` 和 `mpl_toolkits.mplot3d` 库。 2. **定义取值范围**:使用 `np.linspace` 函数定义 `x` 和 `y` 的取值范围为 -6 到 6,每个方向上有 100 个点。 3. **生成网格点坐标矩阵**:使用 `np.meshgrid` 函数生成 `x` 和 `y` 的网格点坐标矩阵 `X` 和 `Y`。 4. **计算 z 值**:使用 `np.where` 函数计算 `z` 值,避免负数平方根。当 `xy >= 0` 时计算 `z = xy + sqrt(xy)`,否则设为 `np.nan`。 5. **创建 3D 图形对象**:使用 `plt.figure()` 创建一个图形对象,使用 `fig.add_subplot(111, projection='3d')` 创建一个 3D 子图。 6. **绘制曲面**:使用 `ax.plot_surface` 函数绘制曲面,设置颜色映射为 `viridis`。 7. **设置坐标轴标签和**:使用 `ax.set_xlabel`、`ax.set_ylabel` 和 `ax.set_zlabel` 设置坐标轴标签,使用 `plt.title` 设置。 8. **添加颜色条**:使用 `fig.colorbar` 函数添加颜色条。 9. **显示图形**:使用 `plt.show()` 显示图形。 ######[AI问答 | 706点数解答 | 2026-02-15 14:13:17]
- 使用Matplotlib绘制z = xy + sqrt(xy)的曲面图(字节豆包 | 706点数解答 | 2026-02-15 14:13:17)3
- 使用matplotlib绘制z=xy+sqrt(xy)的3D曲面(字节豆包 | 624点数解答 | 2026-02-15 14:13:43)5
- Flask代理FastGPT API代码分析:问题剖析与全面改进建议 (DeepSeek | 713点数解答 | 2025-06-18 16:00:34)200
- JSP 实现商品展示模块:分页、搜索、交互与美观界面全搞定!(字节豆包 | 19点数解答 | 2024-12-13 15:00:43)318
- Python与HTML+JavaScript实现3D粒子爱心动画:代码剖析与开发要点(字节豆包 | 1487点数解答 | 2025-08-07 11:24:56)145
- Python 用 Matplotlib 和 NumPy 绘制 3D 爱心动画:开发要点与注意事项(DeepSeek | 130点数解答 | 2025-08-29 21:24:33)140
- PyCharm 中用 Selenium 编写自动化测试脚本,轻松登录 eShop 测试平台并点击“我的订单”(字节豆包 | 304点数解答 | 2024-11-06 15:38:30)419
- 揭秘文法预测分析表:[x, c] 单元格应填的产生式编号(阿里通义 | 285点数解答 | 2024-11-06 16:42:27)122
- Octave代码揭秘:Liu混沌系统时间演化、吸引子图及初值敏感性分析(DeepSeek | 783点数解答 | 2025-04-10 19:00:05)105
- 代码注释:详解“qiumianji”函数计算三角形面积的逻辑(字节豆包 | 224点数解答 | 2024-10-16 18:56:35)237
- C语言:从键盘输入三边长求三角形面积,含输入验证与结果保留(字节豆包 | 219点数解答 | 2024-11-18 16:43:49)231
- C++:点到直线距离计算程序设计及优化、扩展与错误处理探讨(字节豆包 | 478点数解答 | 2024-11-19 19:04:39)136