[英]Setting markers colour in plotly 3D scatterplot according to R, G, B stored in DataFrame columns
我有以下熊貓數據幀:
>>> 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()
情節如下所示。
如您所見,圖中的每個標記都是藍色的。 是否有任何選擇,如何使用df
DataFrame 中的R
、 G
、 B
列來更改圖中每個標記的顏色?
您可以使用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()
你會得到:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.