标签:node pyecharts links ip 生成 模块 nodes data opts
一、需求描述
手里有一份主机间远程访问(SSH、RDP)的访问统计数据,包括源地址、目的地址、登录用户名、访问次数,我希望用pyecharts生成主机间的访问关系图。图表就使用Graph(from pyecharts.charts import Graph)
二、数据处理
1、node(被访问的次数表示节点的大小)
data:192.168.90.149,4
def get_nodes(): with open("nodes.csv","r") as f: node = f.read().splitlines() print(node) return node
nodes = [] for ips in get_nodes(): print(ips) data = ips.split(",") print(data) ip = data[0] size = data[1] node = opts.GraphNode(name=ip,symbol_size=size) nodes.append(node)
2、links(原打算ip之间的访问次数表示线条粗细,由于连接次数比较多会导致,画面比较诡异,可以做归一化处理,或者统一设定)
data:192.168.1.54,Administrator,192.17.3.83,1
def get_links(): with open("links.csv","r") as f: links = f.read().splitlines() return links links = [] for link in get_links(): data = link.split(",") #print(data) des_ip = data[0] user_name = data[1] sour_ip = data[2] width = data[3] node = opts.GraphLink(source=des_ip, target=sour_ip, value=user_name, linestyle_opts=opts.LineStyleOpts(width=width)) links.append(node)
三、生成关联关系图
c = ( Graph().add("", nodes, links, repulsion=4000, edge_label=opts.LabelOpts(is_show=True,position="middle",formatter="{c}"), edge_symbol=['circle', 'arrow'] ).set_global_opts(title_opts=opts.TitleOpts(title="Network-GraphLink")).render("Network-GraphLink.html") )
其中,edge_symbol=['circle', 'arrow']用于设定连接末端箭头
标签:node,pyecharts,links,ip,生成,模块,nodes,data,opts 来源: https://blog.csdn.net/weixin_34542360/article/details/120528225
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。