[英]Plotly: How to manually set the color of points in plotly express scatter plots?
[英]How to create 3d scatter plots for clustering in plotly with having each point color set to color of our choice?
我正在研究由 k-means 中的预测 0 和 1 表示的数据集聚类。 我现在正在寻找 plot 这些点以便更好地可视化它们。 我也将我的 dataframe 转换为 3d。
import plotly
import plotly.graph_objects as go
import numpy as np
plotly.offline.init_notebook_mode(connected=True)
%matplotlib inline
colors = ["red", "gray"]
for i in range(len(x_pca)):
fig = go.Figure(data=[go.Scatter3d(x=x,y=y,z=z, mode='markers',marker=
dict(size=12,color=colors[p[i]],opacity=0.8))])
fig.show()
### p is a list containing values in the form of 0,1,0,0,1.......
# x,y,z are all list containing the points convereted into 3d using pca.
使用上面的代码,我可以打印 3d plot 但所有点的颜色都是红色。
我希望将两种类型的点变成红色和灰色。 有没有办法做到这一点?
df3 dataframe 是使用 x,y,z 和 p 列表制作的。
import plotly.graph_objects as go
import plotly.graph_objects as go
PLOT = go.Figure()
for C in list(df3d.p.unique()):
PLOT.add_trace(go.Scatter3d(x = df3d[df3d.p == C]['x'],
y = df3d[df3d.p == C]['y'],
z = df3d[df3d.p == C]['z'],
mode = 'markers', marker_size = 8, marker_line_width = 1,
name = 'Cluster ' + str(C)))
您可以为磁盘 colors 创建 function。 例如,假设我们有以下数据集(xyzd):
2 2 2 0
3 3 3 1
4 4 4 1
2 2 2 0
my_data = np.genfromtxt('data.txt', delimiter = '\t')
def Data_Color(i):
if (i >0):
return "red"
elif (i <= 0):
return "gray"
fig=go.Figure(go.Scatter3d(x=my_data[:,0],y=my_data[:,1],z=my_data[:,2],
showlegend=True,
mode='markers',
marker=dict(symbol='circle',
size=10,
color=list(map(Data_Color, my_data[:,3]))
)
)
)
fig.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.