Matplotlibを使用して作成した3Dプロットがあり、各ポイントに対応するrbg値のリストがあります。
X、Y、およびZデータがあり、次の形式の「カラーリスト」があります。
[ (r,g,b), (r,g,b), ... , (r,g,b) ]
各(x、y、z)点に一致します。
今、私は持っています
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')
ax.scatter(X, Y, Z)
plt.show()
各ポイントに特定の色が割り当てられるように、これらのRGBタプルを組み込む適切な方法は何ですか?
for
ループを使用して、各ポイントに各色を個別に割り当てました。これが私のコードです:
X = [1, 2, 3]
Y = [2, 5, 8]
Z = [6, 4, 5]
colors=["#0000FF", "#00FF00", "#FF0066"]
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')
for i in range(len(X)):
ax.scatter(X[i], Y[i], Z[i], color=colors[i])
plt.show()
for
ループはポイントごとに進みます(したがって、[i]
各X、Y、Z値の前にあり、色を1つずつ指定します。私の例では16進数の色を使用しましたが、必要に応じて他の色を使用できます。
Forループを使用したくない場合(大規模なリストでは非常に遅くなる可能性があります)RGBカラーリストでscatterコマンドをそのまま使用できますが、色をRGB(またはRGBA)のベクトルとして指定する必要があります。 )0と1の間の値
X = [0, 1, 2]
Y = [0, 1, 2]
Z = [0, 1, 2]
C = np.array([[255, 0, 0], [0, 255, 0], [0, 0, 255]])
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')
ax.scatter(X, Y, Z, c = C/255.0)
plt.show()