python生成24bit全彩RGB立方体的三维散点图

代码要求

生成一个 RGB 立方体的三维散点图。在这个立方体中,每个点代表一个不同的颜色,其位置由红色、绿色和蓝色通道的值决定。点的颜色则直接反映了其在 RGB 空间中的位置。
X轴代表红色通道。Y轴代表绿色通道。
Z轴代表蓝色通道。
每个点的颜色是根据其在这三个颜色通道中的位置确定的。这种视觉化展示了 RGB 颜色空间的三维性质,展现了不同颜色是如何在这个空间中分布的。

请注意,为了使图像渲染更快并且易于观察,在散点图中只使用了一部分颜色点(每隔 25 个值取一个点)。完整的 RGB 立方体将包含 256×256×256=16,777,216 个点,这会使得图像非常密集并且难以有效地渲染和观察。

python代码

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()


结果展示

在这里插入图片描述