2

Python で matplotlib を使用して画像の RGB キューブを作成しようとしています。format のすべてのピクセルの RGB を含む python リストがあります[(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 color arg または rgba タプルのシーケンス

于 2013-05-14T20:59:53.983 に答える