• 首页

  • 官方

  • 主题

  • 关注

  • 联系

人工智能——知识图谱表示法——使用Echarts关系图展示《红楼梦》人物关系图谱

导语:

由于浏览器安全限制,浏览器并不能直接访问电脑本地文件,因此我在代码中访问本地json数据文件,直接打开HTML文件是不行的。我这里使用了VS code中的插件——Live Server,具体的用法可以参考vscode下关于Live Server的使用
,在点击右下角的Go Live后即可自动跳转浏览器。项目完整文件见人工智能——知识图谱表示法——使用Echarts关系图展示《红楼梦》人物关系图谱


效果图

image

代码:

<!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": "乳母"}]}
posted @ 2021-07-11 22:29  戈小戈  阅读(988)  评论(0编辑  收藏  举报