我有以下熊猫数据框:
>>> 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()
该图如下所示。
您可以看到,图中的每个标记都是蓝色的。有什么选择,如何使用R
数据框中的G
,B
,df
列来更改绘图中每个标记的颜色?
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()