人工智能——知识图谱表示法——使用Echarts关系图展示《红楼梦》人物关系图谱
导语:
由于浏览器安全限制,浏览器并不能直接访问电脑本地文件,因此我在代码中访问本地json数据文件,直接打开HTML文件是不行的。我这里使用了VS code中的插件——Live Server,具体的用法可以参考vscode下关于Live Server的使用
,在点击右下角的Go Live后即可自动跳转浏览器。项目完整文件见人工智能——知识图谱表示法——使用Echarts关系图展示《红楼梦》人物关系图谱
效果图
代码:
<!DOCTYPE html>
<html style="height: 100%" lang="zh-CN">
<head>
<title>人工智能第二次作业——知识图谱</title>
<meta charset="utf-8">
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script type="text/javascript">
$.ajaxSetup({ async: false });//异步
var myChart = echarts.init(document.getElementById("container"));
var app = {};
var option;
myChart.showLoading();
var rela = { "data": [], "links": [] };
$.getJSON('./honglou.json', function (json) {/*由于浏览器无法跨域访问本地的json文件,因此我采用了VS code的Live Server插件来模仿服务器请求*/
rela = json;
});
myChart.hideLoading();
option = {
// backgroundColor: "white",
title: {
text: '红楼梦人物关系图谱',
textStyle: {
// color: "white",
fontWeight: "lighter",
}
},
animationDurationUpdate: 1500,
animationEasingUpdate: 'quinticInOut',
legend: {
x: "center",
show: true,
data: ["贾家荣国府", "贾家宁国府", "王家", "史家", "薛家", "其他", "林家"]
},
series: [
{
type: 'graph',
layout: 'circular',
symbolSize: 45,
edgeSymbol: ['circle', 'arrow'],
edgeSymbolSize: [4, 4],
edgeLabel: {
normal: {
show: true,
textStyle: {
fontSize: 10
},
formatter: "{c}"
}
},
force: {
repulsion: 2500,
edgeLength: [10, 100]
},
focusNodeAdjacency: true,
draggable: true,
roam: true,
categories: [{
name: '贾家荣国府',
// itemStyle: {
// normal: {
// color: "#009800",
// }
// }
}, {
name: '贾家宁国府',
// itemStyle: {
// normal: {
// color: "#4592FF",
// }
// }
}, {
name: '王家',
// itemStyle: {
// normal: {
// color: "#3592F",
// }
// }
},
{
name: '史家',
}, {
name: '薛家',
}, {
name: '其他',
},
{
name: '林家',
}
],
label: {
normal: {
show: true,
textStyle: {
fontSize: 12
},
}
},
force: {
repulsion: 1000
},
tooltip: {
formatter: function (node) { // 区分连线和节点,节点上额外显示其他数字
if (!node.value) {
return node.data.name;
} else {
return node.data.name + ":" + node.data.showNum;
}
},
},
lineStyle: {
normal: {
opacity: 0.9,
width: 1,
curveness: 0.3
}
},
// progressiveThreshold: 700,
nodes: rela.data,
links: rela.links,
}
]
};
myChart.setOption(option, true);
if (option && typeof option === 'object') {
myChart.setOption(option);
}
</script>
</body>
</html>
使用到的json数据
点击查看完整数据
{"data": [{"name": "贾雨村", "category": 5}, {"name": "贾琏", "category": 0}, {"name": "王夫人", "category": 2}, {"name": "林之孝家的", "category": 5}, {"name": "甄应嘉", "category": 5}, {"name": "秦可卿", "category": 1}, {"name": "芳官", "category": 0}, {"name": "李纨", "category": 0}, {"name": "夏金桂", "category": 4}, {"name": "柳五儿", "category": 0}, {"name": "贾珠", "category": 0}, {"name": "四儿", "category": 0}, {"name": "贾珍", "category": 1}, {"name": "茗烟", "category": 0}, {"name": "贾蓉", "category": 1}, {"name": "薛蝌", "category": 4}, {"name": "坠儿", "category": 0}, {"name": "贾环", "category": 0}, {"name": "赖尚荣", "category": 5}, {"name": "贾宝玉", "category": 0}, {"name": "甄士隐", "category": 5}, {"name": "马道婆", "category": 5}, {"name": "贾政", "category": 0}, {"name": "尤三姐", "category": 1}, {"name": "秦钟", "category": 5}, {"name": "王熙凤", "category": 2}, {"name": "袭人", "category": 0}, {"name": "刘姥姥", "category": 5}, {"name": "王狗儿", "category": 5}, {"name": "入画", "category": 1}, {"name": "林红玉", "category": 5}, {"name": "周瑞家的", "category": 5}, {"name": "贾敬", "category": 1}, {"name": "孙绍祖", "category": 5}, {"name": "贾惜春", "category": 1}, {"name": "傻大姐", "category": 5}, {"name": "晴雯", "category": 0}, {"name": "李嬷嬷", "category": 5}, {"name": "贾代化", "category": 1}, {"name": "林如海", "category": 6}, {"name": "甄宝玉", "category": 5}, {"name": "秋桐", "category": 0}, {"name": "金文翔家的", "category": 5}, {"name": "鸳鸯", "category": 0}, {"name": "冷子兴", "category": 5}, {"name": "薛蟠", "category": 4}, {"name": "焦大", "category": 1}, {"name": "宝珠", "category": 1}, {"name": "吴贵", "category": 5}, {"name": "佩凤", "category": 1}, {"name": "龄官", "category": 5}, {"name": "莺儿 黄金莺", "category": 5}, {"name": "贾敏", "category": 0}, {"name": "瑞珠", "category": 1}, {"name": "尤氏继母", "category": 1}, {"name": "娇杏", "category": 5}, {"name": "薛宝钗", "category": 4}, {"name": "邢夫人", "category": 0}, {"name": "薛姨妈", "category": 2}, {"name": "林黛玉", "category": 6}, {"name": "秦邦业", "category": 5}, {"name": "藕官", "category": 5}, {"name": "王善保家的", "category": 5}, {"name": "贾探春", "category": 0}, {"name": "薛宝琴", "category": 4}, {"name": "麝月", "category": 0}, {"name": "贾演", "category": 1}, {"name": "贾迎春", "category": 0}, {"name": "妙玉", "category": 5}, {"name": "玉钏儿", "category": 0}, {"name": "秋纹", "category": 0}, {"name": "智能儿", "category": 5}, {"name": "王子腾", "category": 2}, {"name": "柳湘莲", "category": 5}, {"name": "金钏儿", "category": 0}, {"name": "尤氏", "category": 1}, {"name": "邢岫烟", "category": 5}, {"name": "香菱", "category": 5}, {"name": "贾源", "category": 0}, {"name": "贾元春", "category": 0}, {"name": "赵姨娘", "category": 0}, {"name": "邢忠", "category": 5}, {"name": "史湘云", "category": 3}, {"name": "雪雁", "category": 0}, {"name": "紫鹃 鹦哥", "category": 0}, {"name": "金文翔", "category": 5}, {"name": "彩云", "category": 0}, {"name": "贾母", "category": 3}, {"name": "贾代善", "category": 0}, {"name": "巧姐", "category": 0}, {"name": "赖大", "category": 1}, {"name": "尤二姐", "category": 1}, {"name": "林之孝", "category": 5}, {"name": "封肃", "category": 5}, {"name": "香菱 甄英莲", "category": 5}, {"name": "宝蟾", "category": 5}, {"name": "彩霞", "category": 0}, {"name": "李贵", "category": 5}, {"name": "药官", "category": 5}, {"name": "赖嬷嬷", "category": 5}, {"name": "蒋玉菡", "category": 5}, {"name": "金钏", "category": 0}, {"name": "贾兰", "category": 0}, {"name": "贾蔷", "category": 1}, {"name": "偕鸾", "category": 1}, {"name": "贾赦", "category": 0}], "links": [{"source": "王子腾", "target": "王熙凤", "value": "伯父"}, {"source": "莺儿 黄金莺", "target": "薛宝钗", "value": "丫头"}, {"source": "贾雨村", "target": "林黛玉", "value": "老师"}, {"source": "傻大姐", "target": "贾母", "value": "丫头"}, {"source": "龄官", "target": "贾蔷", "value": "相好"}, {"source": "藕官", "target": "林黛玉", "value": "丫环"}, {"source": "藕官", "target": "药官", "value": "相好"}, {"source": "赖嬷嬷", "target": "赖大", "value": "母亲"}, {"source": "赖尚荣", "target": "赖嬷嬷", "value": "孙子"}, {"source": "吴贵", "target": "晴雯", "value": "姑舅哥哥"}, {"source": "薛蟠", "target": "薛姨妈", "value": "儿子"}, {"source": "薛蝌", "target": "薛姨妈", "value": "侄儿"}, {"source": "邢岫烟", "target": "邢夫人", "value": "侄女"}, {"source": "邢岫烟", "target": "邢忠", "value": "女儿"}, {"source": "邢岫烟", "target": "薛蝌", "value": "妻"}, {"source": "薛宝琴", "target": "薛蝌", "value": "胞妹"}, {"source": "薛宝琴", "target": "薛姨妈", "value": "侄女"}, {"source": "夏金桂", "target": "薛蟠", "value": "妻"}, {"source": "香菱 甄英莲", "target": "薛蟠", "value": "妾"}, {"source": "香菱", "target": "甄士隐", "value": "女儿"}, {"source": "甄士隐", "target": "香菱", "value": "父亲"}, {"source": "宝蟾", "target": "夏金桂", "value": "陪房丫头"}, {"source": "赵姨娘", "target": "贾探春", "value": "母亲"}, {"source": "赵姨娘", "target": "贾环", "value": "母亲"}, {"source": "赵姨娘", "target": "贾政", "value": "妾"}, {"source": "薛姨妈", "target": "薛宝琴", "value": "姑母"}, {"source": "薛姨妈", "target": "薛蟠", "value": "母亲"}, {"source": "薛姨妈", "target": "王夫人", "value": "姐妹"}, {"source": "金钏", "target": "王夫人", "value": "大丫环"}, {"source": "彩云", "target": "王夫人", "value": "大丫头"}, {"source": "彩霞", "target": "王夫人", "value": "大丫头"}, {"source": "玉钏儿", "target": "王夫人", "value": "丫头"}, {"source": "玉钏儿", "target": "金钏儿", "value": "妹妹"}, {"source": "金钏儿", "target": "玉钏儿", "value": "姐姐"}, {"source": "贾珠", "target": "贾宝玉", "value": "哥哥"}, {"source": "贾珠", "target": "李纨", "value": "丈夫"}, {"source": "贾珠", "target": "贾政", "value": "长子"}, {"source": "贾珠", "target": "王夫人", "value": "长子"}, {"source": "李纨", "target": "贾宝玉", "value": "嫂子"}, {"source": "李纨", "target": "贾珠", "value": "妻"}, {"source": "贾兰", "target": "李纨", "value": "儿子"}, {"source": "贾兰", "target": "贾珠", "value": "儿子"}, {"source": "贾元春", "target": "王夫人", "value": "长女"}, {"source": "贾元春", "target": "贾政", "value": "长女"}, {"source": "贾宝玉", "target": "林黛玉", "value": "表兄妹"}, {"source": "贾宝玉", "target": "薛宝钗", "value": "丈夫"}, {"source": "贾宝玉", "target": "王夫人", "value": "次子"}, {"source": "贾宝玉", "target": "贾政", "value": "次子"}, {"source": "薛宝钗", "target": "薛姨妈", "value": "女儿"}, {"source": "薛宝钗", "target": "贾宝玉", "value": "妻"}, {"source": "袭人", "target": "贾宝玉", "value": "丫环"}, {"source": "麝月", "target": "贾宝玉", "value": "丫环"}, {"source": "秋纹", "target": "贾宝玉", "value": "丫环"}, {"source": "晴雯", "target": "贾宝玉", "value": "丫环"}, {"source": "坠儿", "target": "贾宝玉", "value": "丫环"}, {"source": "四儿", "target": "贾宝玉", "value": "丫环"}, {"source": "柳五儿", "target": "贾宝玉", "value": "丫环"}, {"source": "柳五儿", "target": "芳官", "value": "好朋友"}, {"source": "芳官", "target": "贾宝玉", "value": "丫环"}, {"source": "茗烟", "target": "贾宝玉", "value": "小厮"}, {"source": "贾环", "target": "赵姨娘", "value": "儿子"}, {"source": "贾环", "target": "贾政", "value": "儿子"}, {"source": "贾探春", "target": "赵姨娘", "value": "女儿"}, {"source": "贾探春", "target": "贾政", "value": "女儿"}, {"source": "贾蔷", "target": "贾珍", "value": "养子"}, {"source": "金文翔", "target": "贾母", "value": "买办"}, {"source": "金文翔", "target": "鸳鸯", "value": "哥哥"}, {"source": "金文翔家的", "target": "鸳鸯", "value": "嫂子"}, {"source": "周瑞家的", "target": "王夫人", "value": "陪房"}, {"source": "王善保家的", "target": "邢夫人", "value": "陪房"}, {"source": "娇杏", "target": "贾雨村", "value": "二夫人"}, {"source": "封肃", "target": "甄士隐", "value": "岳父"}, {"source": "甄宝玉", "target": "甄应嘉", "value": "儿子"}, {"source": "妙玉", "target": "贾宝玉", "value": "朋友"}, {"source": "妙玉", "target": "林黛玉", "value": "朋友"}, {"source": "柳湘莲", "target": "薛蟠", "value": "好兄弟"}, {"source": "蒋玉菡", "target": "袭人", "value": "夫妻"}, {"source": "蒋玉菡", "target": "贾宝玉", "value": "好友"}, {"source": "冷子兴", "target": "贾雨村", "value": "好友"}, {"source": "冷子兴", "target": "周瑞家的", "value": "女婿"}, {"source": "马道婆", "target": "贾宝玉", "value": "乾娘"}, {"source": "智能儿", "target": "秦钟", "value": "暧昧"}, {"source": "秦钟", "target": "秦邦业", "value": "儿子"}, {"source": "尤三姐", "target": "尤二姐", "value": "妹妹"}, {"source": "尤三姐", "target": "尤二姐", "value": "妹妹"}, {"source": "尤三姐", "target": "尤氏继母", "value": "女儿"}, {"source": "秦邦业", "target": "秦可卿", "value": "养父"}, {"source": "秦邦业", "target": "秦钟", "value": "父亲"}, {"source": "史湘云", "target": "贾母", "value": "孙女"}, {"source": "史湘云", "target": "薛宝钗", "value": "朋友"}, {"source": "史湘云", "target": "林黛玉", "value": "朋友"}, {"source": "史湘云", "target": "贾宝玉", "value": "朋友"}, {"source": "贾演", "target": "贾源", "value": "兄弟"}, {"source": "贾演", "target": "焦大", "value": "主人"}, {"source": "贾演", "target": "贾代化", "value": "父亲"}, {"source": "贾代化", "target": "贾敬", "value": "父亲"}, {"source": "贾代化", "target": "贾演", "value": "儿子"}, {"source": "贾敬", "target": "贾珍", "value": "父亲"}, {"source": "贾敬", "target": "贾代化", "value": "儿子"}, {"source": "焦大", "target": "贾演", "value": "老奴"}, {"source": "贾珍", "target": "贾惜春", "value": "父亲"}, {"source": "贾珍", "target": "贾蓉", "value": "父亲"}, {"source": "贾珍", "target": "尤氏", "value": "丈夫"}, {"source": "贾珍", "target": "贾敬", "value": "儿子"}, {"source": "尤氏", "target": "贾惜春", "value": "母亲"}, {"source": "尤氏", "target": "贾珍", "value": "妻"}, {"source": "佩凤", "target": "贾珍", "value": "妾"}, {"source": "偕鸾", "target": "贾珍", "value": "妾"}, {"source": "贾蓉", "target": "秦可卿", "value": "丈夫"}, {"source": "贾蓉", "target": "贾珍", "value": "儿子"}, {"source": "秦可卿", "target": "贾蓉", "value": "妻"}, {"source": "瑞珠", "target": "秦可卿", "value": "丫环"}, {"source": "宝珠", "target": "秦可卿", "value": "丫环"}, {"source": "入画", "target": "贾惜春", "value": "丫环"}, {"source": "贾惜春", "target": "尤氏", "value": "女儿"}, {"source": "贾惜春", "target": "贾珍", "value": "女儿"}, {"source": "贾源", "target": "贾代善", "value": "父亲"}, {"source": "贾代善", "target": "贾赦", "value": "父亲"}, {"source": "贾代善", "target": "贾政", "value": "父亲"}, {"source": "贾代善", "target": "贾母", "value": "丈夫"}, {"source": "贾代善", "target": "贾源", "value": "儿子"}, {"source": "贾母", "target": "林黛玉", "value": "外祖母"}, {"source": "贾母", "target": "邢夫人", "value": "婆婆"}, {"source": "贾母", "target": "贾赦", "value": "母亲"}, {"source": "贾母", "target": "贾代善", "value": "妻"}, {"source": "贾政", "target": "贾赦", "value": "兄弟"}, {"source": "贾政", "target": "贾探春", "value": "父亲"}, {"source": "贾政", "target": "贾环", "value": "父亲"}, {"source": "贾政", "target": "贾宝玉", "value": "父亲"}, {"source": "贾政", "target": "贾元春", "value": "父亲"}, {"source": "贾政", "target": "贾珠", "value": "父亲"}, {"source": "贾政", "target": "王夫人", "value": "丈夫"}, {"source": "贾政", "target": "贾母", "value": "次子"}, {"source": "贾政", "target": "贾代善", "value": "儿子"}, {"source": "贾赦", "target": "贾迎春", "value": "父亲"}, {"source": "贾赦", "target": "贾琏", "value": "父亲"}, {"source": "贾赦", "target": "邢夫人", "value": "丈夫"}, {"source": "贾赦", "target": "贾母", "value": "大儿子"}, {"source": "贾赦", "target": "贾代善", "value": "儿子"}, {"source": "邢夫人", "target": "王熙凤", "value": "婆婆"}, {"source": "邢夫人", "target": "贾母", "value": "大儿媳"}, {"source": "邢夫人", "target": "贾赦", "value": "妻"}, {"source": "王夫人", "target": "贾宝玉", "value": "母亲"}, {"source": "王夫人", "target": "贾元春", "value": "母亲"}, {"source": "王夫人", "target": "贾珠", "value": "母亲"}, {"source": "王夫人", "target": "薛姨妈", "value": "姐妹"}, {"source": "王夫人", "target": "贾政", "value": "妻"}, {"source": "王夫人", "target": "贾母", "value": "小儿媳"}, {"source": "鸳鸯", "target": "贾母", "value": "丫头"}, {"source": "林如海", "target": "林黛玉", "value": "父亲"}, {"source": "林如海", "target": "贾敏", "value": "丈夫"}, {"source": "贾敏", "target": "贾赦", "value": "兄妹"}, {"source": "贾敏", "target": "贾政", "value": "兄妹"}, {"source": "贾敏", "target": "贾母", "value": "女儿"}, {"source": "贾敏", "target": "林黛玉", "value": "母亲"}, {"source": "贾敏", "target": "林如海", "value": "妻"}, {"source": "林黛玉", "target": "贾宝玉", "value": "表兄妹"}, {"source": "林黛玉", "target": "贾母", "value": "外孙女"}, {"source": "林黛玉", "target": "林如海", "value": "女儿"}, {"source": "紫鹃 鹦哥", "target": "贾母", "value": "丫头"}, {"source": "雪雁", "target": "林黛玉", "value": "丫头"}, {"source": "王熙凤", "target": "王夫人", "value": "内侄女"}, {"source": "王熙凤", "target": "巧姐", "value": "母亲"}, {"source": "王熙凤", "target": "贾琏", "value": "妻"}, {"source": "王熙凤", "target": "邢夫人", "value": "儿媳"}, {"source": "秋桐", "target": "贾赦", "value": "妾"}, {"source": "秋桐", "target": "贾赦", "value": "丫环"}, {"source": "贾琏", "target": "巧姐", "value": "父亲"}, {"source": "贾琏", "target": "王熙凤", "value": "丈夫"}, {"source": "贾琏", "target": "贾赦", "value": "儿子"}, {"source": "贾迎春", "target": "孙绍祖", "value": "妻"}, {"source": "贾迎春", "target": "贾赦", "value": "女儿"}, {"source": "巧姐", "target": "刘姥姥", "value": "被抚养"}, {"source": "巧姐", "target": "贾琏", "value": "女儿"}, {"source": "巧姐", "target": "王熙凤", "value": "女儿"}, {"source": "刘姥姥", "target": "王狗儿", "value": "岳母"}, {"source": "尤二姐", "target": "贾琏", "value": "二房"}, {"source": "尤二姐", "target": "尤氏继母", "value": "女儿"}, {"source": "林之孝", "target": "林红玉", "value": "父"}, {"source": "林之孝家的", "target": "林红玉", "value": "母"}, {"source": "李嬷嬷", "target": "李贵", "value": "母"}, {"source": "李嬷嬷", "target": "贾宝玉", "value": "乳母"}]}