我正在尝试在 python 中使用 matplotlib 创建图像的 RGB 立方体。我有一个 python 列表,其中所有像素的 RGB 格式为 [(2,152,255),(0,0,0)...]。我用散点函数绘制了所有点,但我不知道如何用各自的 RGB 颜色绘制每个 RGB 点。
我试过像这样 ax.scatter(paleta[0],paleta[1],paleta[2],c = RGBlist),但该函数需要一个 RGBa 值。 ..
我期待这样的结果:
代码:
paleta=zip(*RGBlist)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(paleta[0],paleta[1],paleta[2])
ax.grid(False)
ax.set_title('grid on')
plt.savefig('Images\\RGBcube.png')
请您参考如下方法:
尝试将 RGB 值缩放到 [0,1] 范围内:
ax.scatter(paleta[0],paleta[1],paleta[2], c=[(r[0]/255., r[1]/255., r[2]/255.) 对于 RGBlist 中的 r])
这适用于以下示例:
import random
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d, Axes3D
RGBlist = [(random.randint(0,255), random.randint(0,255), random.randint(0,255)) for i in range(100)]
paleta=zip(*RGBlist)
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(paleta[0],paleta[1],paleta[2], c=[(r[0] / 255., r[1] / 255., r[2] / 255.) for r in RGBlist])
ax.grid(False)
ax.set_title('grid on')
plt.savefig('blah.png')
给出输出:
