前言
《名侦探柯南绯色的子弹》就要上映了,npy想要和我一起去看,但是她又搞不懂人物关系,所以就用Echarts
做一个柯南的人物关系表了解一下。
ECharts
是使用JavaScript
实现的开源可视化库,可以做出很多精巧的图片,最初由百度团队开源,后于2018年初捐赠给Apache基金会,成为ASF孵化级项目。
步骤
- 引入
jquery
和echarts
的js文件
1 2
| <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@v3.6.0/dist/jquery.min.js"></script> <script type="text/javascript" src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.2/echarts.min.js"></script>
|
- 获取人物关系json文件
json文件中主要分为3部分,分别是nodes
表示人物,links
表示关系连接,categories
表示阵营/类别。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| { "id": "0", "name": "柯南", "symbolSize": 50, "value": 100, "category": 0, "itemStyle": { "normal": { "color": "blue" } } }
|
1 2 3 4 5 6 7 8
| { "source": "1", "target": "0", "value": 100, "name": "伙伴" }
|
1 2 3 4 5 6 7
| { "name": "黑衣组织", "symbol": "circle", "symbolSize": 10, }
|
- 配置前端
1
| <div id="conan_container"></div>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| var conan = echarts.init(document.getElementById("conan_container")); var option; conan.showLoading(); $.getJSON('https://asset.foolishfox.cn/files/2021/Detective-Conan.json', function (graph) { conan.hideLoading(); option = { title: { text: 'Detective Conan', top: 'bottom', left: 'right' }, tooltip: {}, legend: [{ data: graph.categories.map(function (a) { return a.name; }) }], animationDuration: 1500, animationEasingUpdate: 'quinticInOut', series: [ { name: 'Detective Conan', type: 'graph', layout: 'circular', data: graph.nodes, links: graph.links, categories: graph.categories, symbolSize: 15, value: 30, roam: true, label: { show: true, position: 'right', formatter: '{b}' }, labelLayout: { hideOverlap: true }, lineStyle: { color: 'source', curveness: 0.3 }, emphasis: { focus: 'adjacency', lineStyle: { width: 10 } }, scaleLimit: { min: 0.6, max: 3 } } ] }; conan.setOption(option); }); if (option && typeof option === 'object') { conan.setOption(option); }
|
效果展示
参考资料
- 人物关系图谱:ECharts 实现
- Echarts文档
- Echarts示例