2

我正在尝试在 python 中使用 matplotlib 创建图像的 RGB 立方体。我有一个 python 列表,其中包含 format 中所有像素的 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')

4

2 回答 2

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

给出输出:

在此处输入图像描述

于 2013-05-14T20:22:47.987 回答
0

在函数中设置color属性:scatter

color - matplotlib 颜色参数或 rgba 元组序列

于 2013-05-14T20:59:53.983 回答