根据存储在数据框列中的R,G,B在3D散点图中设置标记颜色

问题描述 投票:0回答:1

我有以下熊猫数据框:

>>> print(df.head())
         X         Y        Z   R   G   B
0 -846.160 -1983.148  243.229  22  24  19
1 -846.161 -1983.148  243.229  31  37  28
2 -846.157 -1983.148  243.231  20  21  18
3 -846.160 -1983.148  243.230  21  25  18
4 -846.159 -1983.147  243.233  38  48  34

我将数据从它绘制到3D散点图,如下所示:

import plotly.express as px
fig = px.scatter_3d(df, x='X', y='Y', z='Z')
fig.update_traces(marker=dict(size=4), selector=dict(mode='markers'))
fig.show()

该图如下所示。

enter image description here

您可以看到,图中的每个标记都是蓝色的。有什么选择,如何使用R数据框中的GBdf列来更改绘图中每个标记的颜色?

python pandas colors plotly scatter3d
1个回答
0
投票
您可以使用graph_objs.Scatter3d

graph_objs.Scatter3d

您得到:

import pandas as pd import plotly.graph_objs as go df = pd.DataFrame({'X': [1,2,3,4,5,], 'Y': [1,3,2,4,1], 'Z': [4,1,3,4,1], 'R': [252, 11, 250, 21, 8], 'G': [1, 127, 251, 25, 244], 'B': [1, 28, 8, 128, 4]}) trace = go.Scatter3d(x=df.X, y=df.Y, z=df.Z, mode='markers', marker=dict(size=5, color=['rgb({},{},{})'.format(r,g,b) for r,g,b in zip(df.R.values, df.G.values, df.B.values)], opacity=0.9,)) data = [trace] layout = go.Layout(margin=dict(l=0, r=0, b=0, t=0)) fig = go.Figure(data=data, layout=layout) fig.show()

© www.soinside.com 2019 - 2024. All rights reserved.