基于ECharts 数据可视化展示

在现代社会,数据已经成为人们工作和生活中不可或缺的一部分。为了更好地理解和分析数据,数据可视化技术应运而生。ECharts 是一个由百度开发的数据可视化库,它可以帮助用户通过图表、地图等形式将数据直观地展示出来。在本文中,我们将介绍如何使用 ECharts 创建关系图和甘特图,并通过代码示例进行演示。

关系图示例

关系图是一种用于展示实体之间关系的图表,它通常用节点和边表示实体和实体之间的连接。下面是一个简单的关系图示例,展示了几个城市之间的连接关系:

```mermaid
erDiagram
    CITY {
        string Name
    }
    ROAD {
        string StartPoint
        string EndPoint
    }

    CITY ||--|| ROAD : CONNECTS

在上面的代码示例中,我们定义了两个实体 CITY 和 ROAD,它们之间的连接关系用 CONNECTS 表示。通过这个关系图,我们可以清晰地看到不同城市之间的道路连接情况。

## 甘特图示例

甘特图是一种用于展示任务和时间进度的图表,它可以帮助用户直观地了解任务的完成情况和时间安排。下面是一个简单的甘特图示例,展示了几个任务的完成情况:

```markdown
```mermaid
gantt
    title 项目进度图

    section 需求分析
        完成需求分析  :a1, 2022-01-01, 7d

    section 设计开发
        完成设计开发  :b1, after a1, 14d
        完成代码审查  :b2, after b1, 3d

    section 测试上线
        测试代码  :c1, after b2, 4d
        上线发布  :c2, after c1, 2d

在上面的代码示例中,我们定义了几个任务并设置了它们的开始时间和持续时间,通过这个甘特图,我们可以清晰地看到每个任务的完成情况和时间安排。

## 使用ECharts 创建关系图和甘特图

除了使用 mermaid 语法创建关系图和甘特图之外,我们还可以使用 ECharts 创建这些图表。下面是一个使用 ECharts 创建关系图和甘特图的代码示例:

```javascript
// 创建关系图
var myChart = echarts.init(document.getElementById('relation-chart'));

var option = {
    title: {
        text: '关系图示例'
    },
    series: {
        type: 'graph',
        layout: 'force',
        data: [{
            name: 'City A'
        }, {
            name: 'City B'
        }, {
            name: 'City C'
        }],
        links: [{
            source: 'City A',
            target: 'City B'
        }, {
            source: 'City B',
            target: 'City C'
        }]
    }
};

myChart.setOption(option);

// 创建甘特图
var myGanttChart = echarts.init(document.getElementById('gantt-chart'));

var ganttOption = {
    title: {
        text: '甘特图示例'
    },
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.data.name;
        }
    },
    xAxis: {
        type: 'time'
    },
    yAxis: {
        data: ['Task 1', 'Task 2', 'Task 3', 'Task 4']
    },
    series: [{
        type: 'bar',
        data: [{
            name: 'Task 1',
            value: [new Date('2022-01-01'), new Date('2022-01-08')]
        }, {
            name: 'Task 2',
            value: [new Date('2022-01-08'), new Date('2022-01-22')]
        }, {
            name: 'Task 3',
            value: [new Date('2022-01-22'), new Date('2022-01-25')]
        }, {
            name: 'Task 4',
            value: [new Date('2022-01-25'), new Date('2022-01-27')]
        }]
    }]
};

myGanttChart.setOption