Echarts - 最强大的前端图表框架 | 8月更文挑战

1,324 阅读3分钟

这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战

ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

Echarts最初由百度开发,并分享到开源社区,现在交付给Apache托管。使用宽松的Apache协议。

Echarts的特性

丰富的图表类型

ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图, 用于统计的盒形图,用于地理数据可视化的地图]、热力图、线图, 用于关系数据可视化的关系图、treemap、旭日图, 多维数据可视化的平行坐标, 还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。

除了已经内置的包含了丰富功能的图表,ECharts 还提供了自定义图表,只需要传入一个renderItem函数,就可以从数据映射到任何你想要的图形,更棒的是这些都还能和已有的交互组件结合使用而不需要操心其它事情。

你可以在下载界面下载包含所有图表的构建文件,如果只是需要其中一两个图表,又嫌包含所有图表的构建文件太大,也可以在在线构建中选择需要的图表类型后自定义构建。

支持多种数据格式

ECharts 内置的 dataset 属性(4.0+)支持直接传入包括二维表,key-value 等多种格式的数据源,通过简单的设置 encode 属性就可以完成从数据到图形的映射,这种方式更符合可视化的直觉,省去了大部分场景下数据转换的步骤,而且多个组件能够共享一份数据而不用克隆。

为了配合大数据量的展现,ECharts 还支持输入 TypedArray 格式的数据,TypedArray 在大数据量的存储中可以占用更少的内存,对 GC 友好等特性也可以大幅度提升可视化应用的性能。

海量数据的前端展现

通过增量渲染技术(4.0+),配合各种细致的优化,ECharts 能够展现千万级的数据量,并且在这个数据量级依然能够进行流畅的缩放平移等交互。

几千万的地理坐标数据就算使用二进制存储也要占上百 MB 的空间。因此 ECharts 同时提供了对流加载(4.0+)的支持,你可以使用 WebSocket 或者对数据分块后加载,加载多少渲染多少!不需要漫长地等待所有数据加载完再进行绘制。

跨平台

Echarts不仅支持PC端和手机端的浏览器,还支持微信

动态数据展示

ECharts 由数据驱动,数据的改变驱动图表展现的改变。因此动态数据的实现也变得异常简单,只需要获取数据,填入数据,ECharts 会找到两组数据之间的差异然后通过合适的动画去表现数据的变化。

支持3D展示

通过WebGL技术,Echarts支持3D图表。

Echarts的安装下载

你可以通过以下几种方式获取 Apache EChartsTM。

引入 ECharts

通过标签方式直接引入构建好的 echarts 文件

<!DOCTYPE html> 
    <html> 
    <head> <meta charset="utf-8"> 
    <!-- 引入 ECharts 文件 --> <script src="echarts.min.js"></script> 
    </head>
    <body>
        <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM --> 
        <div id="main" style="width: 600px;height:400px;"></div>
        <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));

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

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

这样你的第一个图表就诞生了!

image.png