matplotlib 三维彩虹渐变曲线
时间: 2025-04-23 20:28:47 浏览: 35
### 如何使用 Matplotlib 绘制 3D 彩虹渐变曲线
为了创建带有彩虹渐变效果的三维曲线图,可以利用 `matplotlib` 的 `cm.rainbow()` 函数为不同位置的数据点赋予不同的颜色。下面是一个具体的实现案例:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
# 创建新的Figure对象并添加一个3D轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 定义参数方程用于生成螺旋线上的坐标值
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
# 将Z轴数值归一化至区间[0,1]以便作为输入给定到色彩映射函数中
norm_z = (z - z.min())/(z.max()-z.min())
# 获取对应于各高度处的颜色向量
colors = cm.rainbow(norm_z)[^1]
# 在3D空间内画出彩色线条;注意这里c参数接收的是之前计算得到的颜色序列
curve = ax.plot(x, y, z, c='k', alpha=0.5)
scat = ax.scatter(x, y, z, c=colors, marker='o')
# 设置标签
ax.set_xlabel('X Axis')
ax.set_ylabel('Y Axis')
ax.set_zlabel('Z Axis')
# 展示图像
plt.show()
```
这段程序首先定义了一组遵循特定规律变化的空间坐标 `(x,y,z)` 来模拟一条复杂的三维路径。接着通过将这些坐标的某个维度(这里是选择了 Z 坐标)转换成 `[0,1]` 区间内的浮点数,从而能够被 colormap 正确解析为相应的 RGB 颜色值。最后,在绘制散点时传入这个由颜色组成的列表即可让每个点都带上独特的色调。
阅读全文
相关推荐














