<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html,
body {
width: 100%;
height: 100%;
}
.myChart {
width: 100%;
height: 900px;
margin: 0 auto;
}
</style>
</head>
<body>
<div>
<div id="myChart" class="myChart" />
</div>
<script src="./echart/echarts.min.js"></script>
<script>
function changeData() {
var data, linksData
data = [
{
name: '玛丽亚',
symbolSize: 100,
value:40
},
{
name: '宏宇',
symbolSize: 50,
value:14
},
{
name: '任小仙',
symbolSize: 60,
value:22
}
]
linksData = [{
source: '玛丽亚',
target: '宏宇',
relationshipName: '朋友'
}, {
source: '玛丽亚',
target: 'imipramine',
relationshipName: '朋友'
}, {
source: '宏宇',
target: '任小仙',
relationshipName: '朋友'
}, {
source: '玛丽亚',
target: '任小仙',
relationshipName: '同事'
}, {
source: '玛丽亚',
target: '任小仙',
relationshipName: '家人'
}, {
relationshipName: '战友',
target: '玛丽亚',
source: '任小仙'
}, {
relationshipName: '战友',
target: '玛丽亚',
source: '宏宇'
}]
var arr = []
for (const i in linksData) {
linksData[i].count = 0
arr.push(linksData[i])
}
for (const i in linksData) {
for (const j in arr) {
if ((arr[j].count === 0) && ((arr[j].source === linksData[i].source) && (arr[j].target === linksData[i].target)) || (arr[j].target === linksData[i].source) && (arr[j].source === linksData[i].target)) {
++linksData[i].count
}
}
}
for (const i in linksData) {
linksData[i].label = {
show: true,
formatter: function (x) {
return x.data.relationshipName // 自定义线条之间的关系名称
}
}
linksData[i].lineStyle = {
curveness: (linksData[i].count - 1) * 0.2 // 线条弧度
}
}
return {
data, linksData
}
}
makeChart()
function makeChart() {
var myChart = echarts.init(document.getElementById('myChart'))
var list = changeData()
var data = list.data
var linksData = list.linksData
var option = {
backgroundColor: '#eeeeee', // 设置背景颜色
title: {
text: '人物关系图',
top: 12,
left: 12,
textStyle: {
fontSize: 14,
color: '#444444'
}
},
tooltip: {
// trigger: 'none'
formatter: function (params) {
if(params.dataType === 'node'){
return `${params.data.name} ${params.data.value}`
}
}
}, // 提示框
animationDurationUpdate: 1500,
animationEasingUpdate: 'quinticInOut',
series: [
{
type: 'graph',
layout: 'force',
// symbolSize: 100, // 倘若该属性不在link里,则其表示节点的大小;否则即为线两端标记的大小
roam: true, // 鼠标缩放功能
label: {
show: true // 是否显示标签
},
focusNodeAdjacency: true, // 鼠标移到节点上时突出显示结点以及邻节点和边
edgeSymbol: ['circle', 'arrow'], // 关系两边的展现形式,也即图中线两端的展现形式。arrow为箭头
edgeSymbolSize: [6, 6], // 设置两边箭头大小
draggable: true,
edgeLabel: {
fontSize: 14 // 关系(也即线)上的标签字体大小
},
force: {
repulsion: 400, // 节点之间的斥力因子值
edgeLength: 170 // 两个节点之间的距离
},
data: data,
links: linksData,
lineStyle: {
opacity: 0.9,
width: 2,
color: 'red' // 设置线条颜色 8ab7bd
// curveness: 0 // 设置线条的弧度
},
itemStyle: {
color: '#61a0a8',
fontSize: 12,
borderWidth: 1,
borderColor: '#ffffff',
shadowColor: 'rgba(0, 0, 0, 0.2)',
shadowBlur: 8
}
}
]
}
myChart.setOption(option, true)
setTimeout(function () {
window.onresize = function () {
myChart.resize()
}
}, 200)
}
</script>
</body>
</html>
echarts——关系图
转载请注明出处或者链接地址:https://www.qianduange.cn//article/16328.html
相关文章
-
前端提高篇(102):jQuery高级方法callbacks、deferred
-
CSS3 动画
-
vue前端页面弹出红色报错遮罩层 Uncaught runtime errors:at handleError (webpack-internal:///./node_modules/webpack
-
npm_yarn_pnpm最新阿里镜像源配置
-
Vue 3 如何处理异步操作(比如 API 请求)?
-
Vue 3中的reactive:响应式状态的全面管理
-
【VUE】vue3 vite项目打包优化
-
java vue计算机毕设基于web的助农特色农产品销售系统【源码 开题 论文】
-
vue启动ReferenceError: ReadableStream is not defined
-
足球联赛|基于SprinBoot vue的足球联赛管理系统(源码 数据库 文档)
发布的文章
html将复选框变为圆形样例
2024-06-30 22:06:57
FastHTML:使用 Python 彻底改变 Web 开发
2024-08-30 20:08:20
前端提高篇(102):jQuery高级方法callbacks、deferred
2024-05-09 11:05:34
CSS3 动画
2024-04-17 21:04:24
vue前端页面弹出红色报错遮罩层 Uncaught runtime errors:at handleError (webpack-internal:///./node_modules/webpack
2024-03-29 15:03:20
Android JSON:Gson,FastJson解析库的使用和对比分析
2024-06-19 23:06:27
json做小型数据库,初始化文件的简单判断处理方法
2024-08-30 03:08:57
java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/json/JsonMapper
2024-08-30 03:08:57
FastJson 升级导致引发的问题
2024-08-30 03:08:57
JWT(JSON Web Token)
2024-08-30 03:08:56
大家推荐的文章