繁体   English   中英

需要在 NetworkX 图中添加更多信息

[英]Need to put more information in NetworkX graph

我正在尝试构建组织结构图,但我需要在图表中输入不止一条信息并插入人员照片。 我将把它放在下面,我想知道如何将他们的照片和标题放在人名下。 先谢谢您的帮助!


import sqlite3, pandas as pd, networkx as nx

con = sqlite3.connect('people.db')

qry="""
SELECT a1.id, a1.name as a1, a2.name as a2, a1.position as a3
FROM people a1
INNER JOIN people a2 ON a1.manager_id = a2.id
"""

emps=pd.read_sql(qry, con)

emps.rename(
columns={'a2' :'manager', 'a1' :'person', 'a3':'position'},
inplace=True
)

edgelist=emps[['person', 'manager',]]

print(edgelist)

orgchart=nx.from_pandas_edgelist(edgelist, source='manager', target='person')

p=nx.drawing.nx_pydot.to_pydot(orgchart)
p.write_png('orgchart.png')

在每个圈子中,我想在 position 和照片下面放上名字。 如果可能的话,我想将布局从圆形更改为方形。

谢谢你!

试图阅读文档,但一无所获。

试图阅读文档,但什么也没有

只需向节点添加属性,它们就会“按原样”传递给 graphviz。

例如,如果你有一个节点“Goerge”,你可以这样做:

orgchart.nodes['George']['color'] = 'red'
orgchart.nodes['George']['shape'] = 'box'
orgchart.nodes['George']['label'] = 'Georgie boy is a swell guy'

请参阅节点(和边)属性的 Graphviz 文档。

至于添加图像,有image属性(使用图像的绝对路径,因为 pydot 将工作目录切换到临时目录),但它显示为节点背景,因此请改用HTML 标签

orgchart.nodes['George']['label'] = '<<TABLE><TR><TD>\\N</TD></TR><TR><TD><IMG SRC="/absolute/path/to/george.png"/></TD></TR></TABLE>>'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM