您的位置:

Echart图表全面解析

一、Echart图表类型

Echart 是百度开源的一个基于 JavaScript 的数据可视化库,支持多种图表类型。根据其官方文档介绍,Echart图表类型分为5种主要类型:

    1. 折线图    line
    2. 饼图      pie
    3. 柱状图    bar
    4. 散点图    scatter
    5. 地图      map

除此之外,Echart还支持K 字符图、箱形图、旭日图、关系图等多种高级图表类型。每种类型都有着相应的配置属性,可以让用户根据自己的需求进行自定义。

二、Echart图表宽高自适应

在实际应用中,经常会遇到需要将 Echart 图表放置在不同尺寸的容器中的情况。这时,需要 Echart 图表能够根据其容器尺寸进行自适应。通常来说,只需要在容器的 CSS 样式表中设置宽度和高度即可实现 Echart 图表宽高自适应,示例如下:

div#chart {
    width: 100%;
    height: 500px;
}

三、Echart图表代码

利用 Echart 图表库可以完成各种图表效果。下面以柱状图为例展示 Echart 图表代码的基本结构和配置项的设置:

// 基于准备好的DOM,初始化echarts实例
var myChart = echarts.init(document.getElementById('chart'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: 'Echart柱状图实例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20]
    }]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

四、Echart图表保存

Echart 支持将图表导出成各种格式的图片,包括PNG、JPEG以及SVG。可以通过Echart提供的接口进行图表保存,示例如下:

var option = {...}; // Echart 图表配置项
var chart = echarts.init(document.getElementById('chart')); // 初始化 Echart 实例
// ...
// 保存当前图表为 PNG 格式
chart.on('click', function(){
    chart.saveAsImage({
        type:'png'
    });
});

五、Echart图表联动

Echart可以通过类似于RShiny中的reactiveValues机制进行联动操作,使得一个图表或表格中的交互事件可以影响另一个表格或图表,例如通过点击表格中的某行数据,联动更新柱状图的数据。可以参考 Echart 提供的“实时刷新”示例进行实现。

六、Echart图表缩放

当Echart图表的数据量较大时,图表默认会在横轴方向上进行滚动展示。如果需要对图表进行缩放操作,可以利用Echart提供的toolbox组件进行实现,示例如下:

var option = {...}; // Echart 图表配置项
var chart = echarts.init(document.getElementById('chart')); // 初始化 Echart 实例
// ...
// 添加缩放组件
chart.setOption({
    toolbox: {
        feature: {
            dataZoom: {
                yAxisIndex: false
            },
            restore: {},
            saveAsImage: {}
        }
    }
});

七、Echart图表点击进入详情页

有时需要在Echart图表中添加交互功能,例如点击图表元素后能够跳转到其他页面并展示更多信息。可以通过Echart提供的“click”事件进行实现:

var option = {...}; // Echart 图表配置项
var chart = echarts.init(document.getElementById('chart')); // 初始化 Echart 实例
// ...
// 为图表添加点击事件
chart.on('click', function (params) {
    window.location.href = '/detail?id=' + params.data.id;
});

八、Echart图表能自动撑开盒子吗

在设置 Echart 图表的容器时,如果容器是由 Echart 自身生成而非已经存在的,可以设置autoResize属性来自动撑开容器:

var option = {...}; // Echart 图表配置项
var chart = echarts.init(document.getElementById('chart')); // 初始化 Echart 实例
// ...
// 自动调整尺寸
window.onresize = function() {
    chart.resize();
}
chart.setOption(option);
chart.setOption(option, true);

九、Echart图表保存删除编辑功能

Echart 主要用于图表的展示,关于保存、删除和编辑等功能需要通过后端实现。不过在 Echart 中也可以通过一些插件实现部分相关功能,例如echarts-gl插件可以支持在3D图中进行旋转、平移和缩放操作等。

十、Echart图表位置选取

Echart默认生成的图表位置是根据图表容器的中心点和图表的尺寸进行计算的。如果需要手动设置图表位置,可以通过Echart的grid和xy轴坐标配置项来实现,示例如下:

var option = {...}; // Echart 图表配置项
var chart = echarts.init(document.getElementById('chart')); // 初始化 Echart 实例
// ...
// 手动设置图表位置
chart.setOption({
    grid: {
        left: '10%',
        right: '10%',
        top: 50,
        bottom: 50,
        containLabel: true
    },
    xAxis: {
        type: 'category',
        boundaryGap: false,
        data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        name: '邮件营销',
        type: 'line',
        stack: '总量',
        data: [120, 132, 101, 134, 90, 230, 210]
    }]
});

总结

本文对Echart图表作了全面解析,包括图表类型、宽高自适应、代码、保存、联动、缩放、点击、自动撑开盒子、保存删除编辑和位置选取等主要内容。Echart作为一款强大的可视化库,可以实现多样的图表可视化效果,而实现图表的联动和交互功能,则需要进行一定的编程。希望本文能够对使用Echart的读者有所帮助。