生成一个 RGB 立方体的三维散点图。在这个立方体中,每个点代表一个不同的颜色,其位置由红色、绿色和蓝色通道的值决定。点的颜色则直接反映了其在 RGB 空间中的位置。
X轴代表红色通道。Y轴代表绿色通道。
Z轴代表蓝色通道。
每个点的颜色是根据其在这三个颜色通道中的位置确定的。这种视觉化展示了 RGB 颜色空间的三维性质,展现了不同颜色是如何在这个空间中分布的。
请注意,为了使图像渲染更快并且易于观察,在散点图中只使用了一部分颜色点(每隔 25 个值取一个点)。完整的 RGB 立方体将包含 256×256×256=16,777,216 个点,这会使得图像非常密集并且难以有效地渲染和观察。
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 创建一个 RGB 立方体的三维散点图
def plot_rgb_cube():
# 初始化图像和 3D 轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 生成 RGB 值
r, g, b = np.meshgrid(np.arange(0, 256, 25),
np.arange(0, 256, 25),
np.arange(0, 256, 25))
# 降低点的数量来保证图像可以更快渲染,每种颜色间隔 25
r = r.flatten()
g = g.flatten()
b = b.flatten()
# 绘制散点图
ax.scatter(r, g, b, c=np.stack([r, g, b], axis=1) / 255, marker='o')
# 设置轴标签
ax.set_xlabel('Red Channel')
ax.set_ylabel('Green Channel')
ax.set_zlabel('Blue Channel')
# 设置标题
ax.set_title('3D RGB Color Cube')
# 显示图像
plt.show()
plot_rgb_cube()