在2行2列的绘图区域中绘制三维曲线、曲面和散点点图,要求如下: 1.在第一个绘图区域绘制一条给定数据的三维曲线; 2.在第二个绘图区域绘制一条z=50*sin(x+y)三维曲面; 3.在第三个绘图区域绘制三维散点图,x,y,z三个坐标轴的数值分别0-50之间的30个随机数。30个点中,前10个点红色,中间10个点蓝色,最后10个点黄色
时间: 2023-12-03 16:43:34 浏览: 102
三维曲线和曲面的绘制
以下是Python中使用matplotlib库实现上述要求的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 第一个绘图区域:绘制给定数据的三维曲线
fig = plt.figure()
ax1 = fig.add_subplot(2, 2, 1, projection='3d')
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2)) / np.sqrt(X**2 + Y**2)
ax1.plot_surface(X, Y, Z)
# 第二个绘图区域:绘制z=50*sin(x+y)三维曲面
ax2 = fig.add_subplot(2, 2, 2, projection='3d')
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(x, y)
Z = 50 * np.sin(X+Y)
ax2.plot_surface(X, Y, Z)
# 第三个绘图区域:绘制三维散点图
ax3 = fig.add_subplot(2, 2, 3, projection='3d')
x = np.random.randint(0, 50, 30)
y = np.random.randint(0, 50, 30)
z = np.random.randint(0, 50, 30)
color = ['r']*10 + ['b']*10 + ['y']*10
ax3.scatter(x, y, z, c=color)
plt.show()
```
运行上述代码,即可得到包含三个绘图区域的窗口。第一个绘图区域绘制了一条给定数据的三维曲线,第二个绘图区域绘制了z=50*sin(x+y)三维曲面,第三个绘图区域绘制了三维散点图,其中前10个点红色,中间10个点蓝色,最后10个点黄色。
阅读全文