簡體   English   中英

根據存儲在 DataFrame 列中的 R、G、B 在繪圖 3D 散點圖中設置標記顏色

[英]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 中的RGB列來更改圖中每個標記的顏色?

您可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM