我正在尝试使用python中的matplotlib创建图像的RGB立方体。我有一个python列表,其中包含格式为[(2,152,255),(0,0,0)...]
的所有像素的RGB。我用散射函数绘制所有点,但我不知道如何用它各自的RGB颜色绘制每个RGB点。
我尝试过这样的事情ax.scatter(paleta[0],paleta[1],paleta[2],c = RGBlist)
,但函数需要一个RGBa值......
我希望像这样的somthig:
代码:
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')
答案 0 :(得分:1)
尝试将RGB值缩放到[0,1]范围:
ax.scatter(paleta[0],paleta[1],paleta[2], c=[(r[0] / 255., r[1] / 255., r[2] / 255.) for r in RGBlist])
这适用于以下示例:
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')
给出输出:
答案 1 :(得分:0)
在scatter
函数中设置color
属性:
color - matplotlib颜色arg或rgba元组序列