Echarts.

357 阅读2分钟

ECharts是什么?

ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。

Echarts的特征

  • 丰富的可视化类型
  • 多种数据格式无需转换直接使用
  • 千万数据的前端展现
  • 移动端优化:针对移动端交互做了细致的优化
  • 多渲染方案,跨平台使用
  • 深度的交互式数据探索
  • 多维数据的支持以及丰富的视觉编码手段
  • 动态数据:数据的改变驱动图表展现的改变
  • 绚丽的特效
  • 通过GL实现更多更强大绚丽的三维可视化
  • 无障碍访问

Echarts的配置语法

  • 创建HTML页面,引入echarts.js文件

<script src="./js/echarts.min.js"></script>

  • 为Echarts准备一个具备宽高的DOM容器
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
</body>
  • 设置配置信息 ECharts 库使用 json 格式来配置。
echarts.init(document.getElementById('main')).setOption(option);

option表示使用json数据格式的配置来绘制图表。

标题

title: {
                text: 'Stacked Area Chart'
         },

提示信息

 tooltip:{},

图例组件

legend: {
    data: [{
        name: '系列1',
        // 强制设置图形为圆。
        icon: 'circle',
        // 设置文本为红色
        textStyle: {
            color: 'red'
        }
    }]
}

x轴

xAxis: {
                   data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
               },

Y轴

 yAxis: {},

系列列表 每个系列通过Type决定自己的图标类型

series: [{
    name: '销量',  // 系列名称
    type: 'bar',  // 系列图表类型
    data: [5, 20, 36, 10, 10, 20]  // 系列中的数据内容
}]

图表类型

  • type: 'bar':柱状/条形图
  • type: 'line':折线/面积图
  • type: 'pie':饼图
  • type: 'scatter':散点(气泡)图
  • type: 'effectScatter':带有涟漪特效动画的散点(气泡)
  • type: 'radar':雷达图
  • type: 'tree':树型图
  • type: 'treemap':树型图
  • type: 'sunburst':旭日图
  • type: 'boxplot':箱形图
  • type: 'candlestick':K线图
  • type: 'heatmap':热力图
  • type: 'map':地图
  • type: 'parallel':平行坐标系的系列
  • type: 'lines':线图
  • type: 'graph':关系图
  • type: 'sankey':桑基图
  • type: 'funnel':漏斗图
  • type: 'gauge':仪表盘
  • type: 'pictorialBar':象形柱图
  • type: 'themeRiver':主题河流
  • type: 'custom':自定义系列

实例:

    <script src="./js/echarts.min.js"></script>
    
<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: 'Stacked Area Chart'
            },
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'cross',
                    label: {
                        backgroundColor: '#6a7985'
                    }
                }
            },
            legend: {
                data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
            },
            toolbox: {
                feature: {
                    saveAsImage: {}
                }
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            xAxis: [
                {
                    type: 'category',
                    boundaryGap: false,
                    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
                }
            ],
            yAxis: [
                {
                    type: 'value'
                }
            ],
            series: [
                {
                    name: 'Email',
                    type: 'line',
                    stack: 'Total',
                    areaStyle: {},
                    emphasis: {
                        focus: 'series'
                    },
                    data: [120, 132, 101, 134, 90, 230, 210]
                },
                {
                    name: 'Union Ads',
                    type: 'line',
                    stack: 'Total',
                    areaStyle: {},
                    emphasis: {
                        focus: 'series'
                    },
                    data: [220, 182, 191, 234, 290, 330, 310]
                },
                {
                    name: 'Video Ads',
                    type: 'line',
                    stack: 'Total',
                    areaStyle: {},
                    emphasis: {
                        focus: 'series'
                    },
                    data: [150, 232, 201, 154, 190, 330, 410]
                },
                {
                    name: 'Direct',
                    type: 'line',
                    stack: 'Total',
                    areaStyle: {},
                    emphasis: {
                        focus: 'series'
                    },
                    data: [320, 332, 301, 334, 390, 330, 320]
                },
                {
                    name: 'Search Engine',
                    type: 'line',
                    stack: 'Total',
                    label: {
                        show: true,
                        position: 'top'
                    },
                    areaStyle: {},
                    emphasis: {
                        focus: 'series'
                    },
                    data: [820, 932, 901, 934, 1290, 1330, 1320]
                }
            ]
        };

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

注:

官方网站:Handbook - Apache ECharts

菜鸟教程:ECharts 教程 | 菜鸟教程 (runoob.com)