ECharts 实现人民的名义关系图谱 代码开源

1、什么是ECharts

ECharts是百度开源的纯 Javascript 图表库,目前开源可以与highcharts相匹敌的一个图表库,相信有很多国内用户使用。

官网 http://echarts.baidu.com/

 

2、开始简单配置关系图

1、首先配置series的type为graph。

2、layout为force,layout可以选择none、circular和force

  'none' 不采用任何布局,使用节点中提供的 x, y 作为节点的位置。

  'circular' 采用环形布局。

  'force' 采用力引导布局。

  来自官方文档

2、设置鼠标移动到人物处显示人物简介tooltip

tooltip: {
    formatter: function (x) {
        return x.data.des;
    }
}

 

3、设置data 

{
    name: '侯亮平',
    des: '最高检反贪局侦查处处长,汉东省人民检察院副检察长兼反贪局局长。<br/>经过与腐败违法分子的斗争,最终将一批腐败分子送上了审判台,<br/>正义战胜邪恶,自己也迎来了成长。',
    symbolSize: 100,
    itemStyle: {
        normal: {
            color: 'red'
        }
    }
}

 

4、设置关系

{
    source: '高育良',
    target: '侯亮平',
    name: '师生',
    des: '侯亮平是高育良的得意门生'
}

 

3、完整代码

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>ECharts 实现人民的名义关系图谱</title>
    <script src="jquery-1.10.2.min.js"></script>
    <script src="echarts.min.js"></script>
    <style type="text/css">
        html, body, #main { height: 100%; width: 100%; margin: 0; padding: 0 }
    </style>
</head>
<body>
    <div id="main" style=""></div>
    <script type="text/javascript">
        var myChart = echarts.init(document.getElementById('main'));
        option = {
            title: { text: '人民的名义关系图谱' },
            tooltip: {
                formatter: function (x) {
                    return x.data.des;
                }
            },
            series: [
                {
                    type: 'graph',
                    layout: 'force',
                    symbolSize: 80,
                    roam: true,
                    edgeSymbol: ['circle', 'arrow'],
                    edgeSymbolSize: [4, 10],
                    edgeLabel: {
                        normal: {
                            textStyle: {
                                fontSize: 20
                            }
                        }
                    },
                    force: {
                        repulsion: 2500,
                        edgeLength: [10, 50]
                    },
                    draggable: true,
                    itemStyle: {
                        normal: {
                            color: '#4b565b'
                        }
                    },
                    lineStyle: {
                        normal: {
                            width: 2,
                            color: '#4b565b'

                        }
                    },
                    edgeLabel: {
                        normal: {
                            show: true,
                            formatter: function (x) {
                                return x.data.name;
                            }
                        }
                    },
                    label: {
                        normal: {
                            show: true,
                            textStyle: {
                            }
                        }
                    },
                    data: [
                        {
                            name: '侯亮平',
                            des: '最高检反贪局侦查处处长,汉东省人民检察院副检察长兼反贪局局长。<br/>经过与腐败违法分子的斗争,最终将一批腐败分子送上了审判台,<br/>正义战胜邪恶,自己也迎来了成长。',
                            symbolSize: 100,
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            }
                        }, {
                            name: '李达康',
                            des: '汉东省省委常委,京州市市委书记。是一个正义无私的好官。<br/>但为人过于爱惜自己的羽毛,对待身边的亲人和朋友显得有些无情。',
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            }
                        }, {
                            name: '祁同伟',
                            des: '汉东省公安厅厅长',
                            symbolSize: 100
                        }, {
                            name: '陈岩石',
                            des: '离休干部、汉东省检察院前常务副检察长。充满正义,平凡而普通的共 产 党人。<br/>对大老虎赵立春,以各种形式执着举报了十二年。<br/>在这场关系党和国家生死存亡的斗争中,老人家以耄耋高龄,<br/>义无反顾地背起了炸 药包,在反腐胜利前夕因病去世。',
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            }
                        }, {
                            name: '陆亦可',
                            des: '汉东省检察院反贪局一处处长',
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            }
                        }, {
                            name: '高育良',
                            des: '汉东省省委副书记兼政法委书记。年近六十,是一个擅长太极功夫的官场老手。侯亮平、陈海和祁同伟是其学生。',
                            symbolSize: 100
                        }, {
                            name: '沙瑞金',
                            des: '汉东省省委书记',
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            }
                        }, {
                            name: '高小琴',
                            des: '山水集团董事长,是一位叱咤于政界和商界的风云人物,处事圆滑、精明干练。'
                        }, {
                            name: '高小凤'
                        }, {
                            name: '赵东来',
                            des: '汉东省京州市公安局局长,充满正义,整治恶势力,<br/>在与检察部门的合作中从最初的质疑到之后的通力配合。',
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            }
                        }, {
                            name: '程度',
                            des: '汉东省京州市公安局光明区分局局长,因犯错误,被李达康书记和赵东来局长点名要清除公安队伍。<br/>但在高小琴的帮助下,祁同伟调他当上了省公安厅办公室副主任。<br/>尽管程度逃避了所有罪责,上面也有人保他,<br/>但最终还是在反贪局局长侯亮平的缜密侦查下被绳之于法。',
                        }, {
                            name: '吴惠芬',
                            des: '汉东省省委副书记高育良的妻子,汉东大学明史教授。',
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            }
                        }, {
                            name: '赵瑞龙',
                            des: '副国级人物赵立春的公子哥,官二代,打着老子的旗子,<br/>黑白两道通吃,可谓呼风唤雨,权倾一时。',
                        }, {
                            name: '赵立春',
                            des: '副国级领导人,曾经的改革闯将,在权利面前,显得极其渺小。',
                        }, {
                            name: '陈海',
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            }
                        }, {
                            name: '梁璐',
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            }
                        }, {
                            name: '刘新建'
                        }, {
                            name: '欧阳菁'
                        }, {
                            name: '吴心怡',
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            }
                        }, {
                            name: '蔡成功'
                        }, {
                            name: '丁义珍'
                        }
                    ],
                    links: [
                        {
                            source: '高育良',
                            target: '侯亮平',
                            name: '师生',
                            des: '侯亮平是高育良的得意门生'
                        }, {
                            source: '高育良',
                            target: '祁同伟',
                            name: '师生'
                        }, {
                            source: '赵立春',
                            target: '高育良',
                            name: "前领导"
                        }, {
                            source: '赵立春',
                            target: '赵瑞龙',
                            name: "父子"
                        }, {
                            source: '赵立春',
                            target: '刘新建',
                            name: "前部队下属"
                        }, {
                            source: '李达康',
                            target: '赵立春',
                            name: "前任秘书"
                        }, {
                            source: '祁同伟',
                            target: '高小琴',
                            name: "情人"
                        }, {
                            source: '陈岩石',
                            target: '陈海',
                            name: "父子"
                        }, {
                            source: '陆亦可',
                            target: '陈海',
                            name: "属下"
                        }, {
                            source: '沙瑞金',
                            target: '陈岩石',
                            name: "故人"
                        }, {
                            source: '祁同伟',
                            target: '陈海',
                            name: "师哥"
                        }, {
                            source: '祁同伟',
                            target: '侯亮平',
                            name: "师哥"
                        }, {
                            source: '侯亮平',
                            target: '陈海',
                            name: "同学,生死朋友"
                        }, {
                            source: '高育良',
                            target: '吴惠芬',
                            name: "夫妻"
                        }, {
                            source: '陈海',
                            target: '赵东来',
                            name: "朋友"
                        }, {
                            source: '高小琴',
                            target: '高小凤',
                            name: "双胞胎",
                            symbolSize: '1'
                        }, {
                            source: '赵东来',
                            target: '陆亦可',
                            name: "爱慕"
                        }, {
                            source: '祁同伟',
                            target: '程度',
                            name: "领导"
                        }, {
                            source: '高育良',
                            target: '高小凤',
                            name: "情人"
                        }, {
                            source: '赵瑞龙',
                            target: '祁同伟',
                            name: "勾结",
                            symbolSize: '1',
                        }, {
                            source: '李达康',
                            target: '赵东来',
                            name: "领导"
                        }, {
                            source: '赵瑞龙',
                            target: '程度',
                            name: "领导"
                        }, {
                            source: '沙瑞金',
                            target: '李达康',
                            name: "领导"
                        }, {
                            source: '沙瑞金',
                            target: '高育良',
                            name: "领导"
                        }, {
                            source: '祁同伟',
                            target: '梁璐',
                            name: "夫妻"
                        }, {
                            source: '吴惠芬',
                            target: '梁璐',
                            name: "朋友"
                        }, {
                            source: '李达康',
                            target: '欧阳菁',
                            name: "夫妻"
                        }, {
                            source: '赵瑞龙',
                            target: '刘新建',
                            name: "洗钱工具"
                        }, {
                            source: '赵瑞龙',
                            target: '高小琴',
                            name: "勾结,腐化",
                            symbolSize: '1'
                        }, {
                            source: '赵瑞龙',
                            target: '高小凤',
                            name: "腐化"
                        }, {
                            source: '吴心怡',
                            target: '陆亦可',
                            name: "母女"
                        }, {
                            source: '吴心怡',
                            target: '吴惠芬',
                            name: "姐妹"
                        }, {
                            source: '蔡成功',
                            target: '侯亮平',
                            name: "发小"
                        }, {
                            source: '蔡成功',
                            target: '欧阳菁',
                            name: "举报",
                            lineStyle: {
                                normal: {
                                    type: 'dotted',
                                    color: '#000'
                                }
                            }
                        }, {
                            source: '欧阳菁',
                            target: '刘新建',
                            name: "举报",
                            lineStyle: {
                                normal: {
                                    type: 'dotted',
                                    color: '#000'
                                }
                            }
                        }, {
                            source: '刘新建',
                            target: '赵瑞龙',
                            name: "举报",
                            lineStyle: {
                                normal: {
                                    type: 'dotted',
                                    color: '#000'
                                }
                            }
                        }, {
                            source: '李达康',
                            target: '丁义珍',
                            name: "领导"
                        }, {
                            source: '高小琴',
                            target: '丁义珍',
                            name: "策划出逃"
                        }, {
                            source: '祁同伟',
                            target: '丁义珍',
                            name: "勾结"
                        }, {
                            source: '赵瑞龙',
                            target: '丁义珍',
                            name: "勾结"
                        }]
                }
            ]
        };
        myChart.setOption(option);
    </script>
</body>
</html>
View Code

 

4、图

5、总结

如果web需要显示一下关系图,echarts是个不错的选择。

最后望对各位有所帮助,本文原创,欢迎拍砖和推荐。  

Github:https://github.com/Emrys5/ECharts-Relationship-map

 演示:https://emrys5.github.io/ECharts-Relationship-map/

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>组织结构图</title> <style> .dvItem { position:absolute; width:24px; border:1px solid #999999; font-size:12px; padding:5px; height:80px; z-index:9; background-color:#FFFFFF; line-height:16px; } a { text-decoration:none; color:#333333; } .dvhline { position:absolute; z-index:17; padding:0px; margin:0px; border-top:1px solid #999999; } .dvvline { color:blue; position:absolute; background-color:#999999; width:1px; z-index:17; } </style> <script> var dItem = new Array(); var w = 600; var h = 40; var iw = 60; var ih = 80; var boxh = 80; var startleft = 400; var starttop = 40; var hr = "<hr size=\"1\" noshade>" var labledv = "<div class=\"dvItem\" style=\"" var hdv = "<div class=\"dvhline\" style=\"width:"; var vdv = "<div class=\"dvvline\" style=\"height:" + h + "px;\""; var endsdv = "\">"; var enddv = "</div>"; var htm = ""; var len; var maxn=0;//深度 function Load_Data() { dItem[0] = "1|总经理|0|"; dItem[1] = "2|营运主管|1|"; dItem[2] = "3|技术主管|1|"; dItem[3] = "4|客服主管|2|"; dItem[4] = "5|商务主管|2|"; dItem[5] = "6|商务代表|5|"; dItem[6] = "7|营运策划|2|"; dItem[7] = "8|程序员|3|"; dItem[8] = "9|美工|3|"; len = dItem.length; Set_Item(0,0); Set_Max(); Write_Item(0,0,0,1); var htm1 = ""; for(var i=0;i<len;i++) { htm1 = htm1 +dItem[i]+"<br>"; } //document.getElementById("Load_DV").innerHTML = htm1 ; document.getElementById("List_DV").innerHTML = htm; } //设置层次 function Set_Item(pid,ni) { var n = ni + 1; var iAry = new Array(); for(var i=0;i<len;i++) { iAry = dItem[i].split("|"); if(iAry[2] == pid) { dItem[i] = dItem[i] + ni; if(maxn < ni) { maxn = ni; } Set_Item(iAry[0],n); } } } //设置节点子节点中最大数 function Set_Max() { var iAry = new Array(); var childnum; for(var i=0;i<len;i++) { iAry = dItem[i].split("|"); childnum = Get_Child_Num(iAry[0]); if(childnum <= 1) { dItem[i] = dItem[i] + "|0"; } else { dItem[i] = dItem[i] + "|" + Get_Max(iAry[0],iAry[3]); } } } function Get_Max(pid,start) { var iAry = new Array(); var m = 0; var n = 0; for(var j=start;j<=maxn;j++) { for(var i=0;i<len;i++) { iAry = dItem[i].split("|"); if(iAry[3] == j) { if(Get_RootID(pid,iAry[0])) { m = m + 1; } } if(n < m) { n = m; } } m = 0; } return n; } function Get_RootID(pid,id) { var iAry = new Array(); for(var i=0;i<len;i++) { iAry = dItem[i].split("|"); if(iAry[0] == id) { if(iAry[2] == pid) { return true; break; } else { return Get_RootID(pid,iAry[2]); } } } return false; }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值