如何解决3D 网络图链接颜色/离散颜色图
我使用 this 指南制作了一个 3D 网络图,效果非常好,但是当涉及到对某些边缘颜色使用 value 变量时,它只会改变部分边缘颜色的颜色网络,其他部分未着色。
数据有this格式
代码与指南中的相同:
N=len(data['nodes'])
L=len(data['links'])
Edges=[(data['links'][k]['source'],data['links'][k]['target']) for k in range(L)]
G=ig.Graph(Edges,directed=False)
layt=G.layout('kk',dim=3)
labels=[]
group=[]
for node in data['nodes']:
labels.append(node['name'])
group.append(node['group'])
Xn=[]
Yn=[]
Zn=[]
for k in range(N):
Xn+=[layt[k][0]]
Yn+=[layt[k][1]]
Zn+=[layt[k][2]]
Xe=[]
Ye=[]
Ze=[]
for e in Edges:
Xe+=[layt[e[0]][0],layt[e[1]][0],None]# x-coordinates of edge ends
Ye+=[layt[e[0]][1],layt[e[1]][1],None]
Ze+=[layt[e[0]][2],layt[e[1]][2],None]
trace1=go.Scatter3d(x=Xe,y=Ye,z=Ze,mode='lines',line=dict(color='rgb(125,125,125)',width=1),hoverinfo='none')
trace2=go.Scatter3d(x=Xn,y=Yn,z=Zn,mode='markers',name='actors',marker=dict(symbol='circle',size=6,color=group,colorscale='Viridis',line=dict(color='rgb(50,50,50)',width=0.5)),text=labels,hoverinfo='text')
axis=dict(showbackground=False,showline=False,zeroline=False,showgrid=False,showticklabels=False,title='')
layout = go.Layout(
title="123",width=1000,height=1000,showlegend=False,scene=dict(
xaxis=dict(axis),yaxis=dict(axis),zaxis=dict(axis),))
data=[trace1,trace2]
fig=go.figure(data=data,layout=layout)
fig.show()
value = []
for i in df['links']:
value.append(i['value'])
然后将其用作线条的颜色,同时将 trace2 中的节点颜色更改为黑色:
trace1=go.Scatter3d(x=Xe,line=dict(color=value,width=5,showscale=True),hoverinfo='none')
输出看起来像这样,只是部分链接是彩色的 3d network link colors
有关如何为网络的所有链接着色的任何提示?我还尝试通过将 value 变量转换为字符串来将其用作离散变量;不幸的是,颜色字符串不适用于 Scatter3d。对于如何使用 value 变量作为变量每个值的离散颜色图,您有什么建议吗?提前致谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。