用matplotlib根据3D图画法画出3D数据z=(x y)^2,并利用等高线图对其进行投影,颜色设置为彩色
时间: 2024-09-20 12:01:50 浏览: 30
使用matplotlib 画3d图
在Python中,你可以使用matplotlib库中的mplot3d工具包来绘制三维图形,特别是在三维空间中绘制函数的图形。这里是一个简单的例子,展示如何创建一个3D图表,其中z值等于x和y的平方,并使用等高线图对其做投影,同时设置颜色为彩色:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 创建数据网格
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y) # 创建x和y坐标矩阵
Z = X**2 + Y**2 # 计算z值,即 (x, y) 的平方和
# 初始化3D图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 绘制三维散点图
ax.plot_surface(X, Y, Z, cmap='viridis', alpha=0.8) # 使用'viridis'色谱,透明度设为0.8
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z = X^2 + Y^2')
# 创建等高线图的投影
cset = ax.contourf(X, Y, Z, zdir='z', offset=-25, cmap='viridis') # 设置z轴方向的颜色映射
ax.clabel(cset, fontsize=9, inline=True, fmt='%1.1f')
plt.show() # 显示图形
```
在这个示例中,我们首先创建了一个网格,然后计算了每个网格点的z值,接着通过`plot_surface`函数绘制了3D表面图。同时,我们还添加了一个等高线图的投影,它显示了z值在平面上的变化情况。
阅读全文