Vue使用Echarts以及Echarts配置分享

Posted 黄大渣渣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue使用Echarts以及Echarts配置分享相关的知识,希望对你有一定的参考价值。

一、本篇文章将给大家分享如何在vue中使用echart以及echart各项配置,这些配置都是工作中比较常见以及常用到的,所以给大家分享下,希望对大家有用。

二、vue中使用echart。

1、首先下载echart依赖,这里采用的npm包管理工具,在项目中运行命令:

npm install echarts --save-dev

2、在main.js里引入echart:

import echarts from \'echarts\';

3、在vue中注册echart:

Vue.prototype.$echarts = echarts;

4、在vue中使用echart:

<template>
    <div style="height:400px;width: 1000px" id="echartDemo">
        
    </div>
</template>
<script>
    export default {
        data() {
            return {
                
            }
        },
        mounted(){
            initEchart()
        },
        methods:{
            initEchart(){
                //初始化echart实例,获取dom
                var echartDemo=this.$echarts.init(document.getElementById(\'echartDemo\'));
                option = {
                    color: [\'#618FC8\'],
                    backgroundColor:\'#F8F8F8\',
                    tooltip : {
                        trigger: \'axis\',
                        axisPointer : {            // 坐标轴指示器,坐标轴触发有效
                            type : \'shadow\'        // 默认为直线,可选为:\'line\' | \'shadow\'
                        }
                    },
                    grid: {
                        left: \'3%\',
                        right: \'4%\',
                        bottom: \'3%\',
                        top:20,
                        containLabel: true
                    },
                    xAxis : [
                        {
                            type : \'category\',
                            data : [\'Decade Ⅰ\', \'Decade Ⅱ\', \'Decade Ⅲ\'],
                            axisTick: {
                                alignWithLabel: true
                            }
                        }
                    ],
                    yAxis : [
                        {
                            type : \'value\',
                            min:1600,
                            max:2100,
                            interval: 50,
                        }
                    ],
                    series : [
                        {
                            name:\'新增订单\',
                            type:\'bar\',
                            barWidth: \'40%\',
                            data:[1770, 1852, 2000]
                        }
                    ]
                };
                echartDemo.setOption(option);
            }
        },
        components:{

        }
    }
</script>

5.如果echart中使用到的数据比较大比较多的话可以考虑放到vuex里边,小数据可直接放到data里边就可以。

三、echart的各项配置

1.先介绍下一些常见的全局配置:

1.1、title组件,包含表的主标题和副标题的相关配置;

1.2、legend组件,图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示。

比如:

legend: {
data:[\'利润\', \'支出\', \'收入\']
},

1.3、xAxis,yAxis主要是X轴跟Y轴的一些配置;

1.4、tooltip组件也是用的比较多的,就是鼠标移上去那个提示框的配置。

 

1.5、toolbox工具栏。内置有导出图片数据视图动态类型切换数据区域缩放重置五个工具。类似下图:

 1.6、grid主要是配置表中的整天布局,比如距离距离边距多宽等。

1.7、series是系列列表,可以理解为主要的列表数据已经配置都在里边,对象里边的type这代表为不同的表,比如bar代表柱状图。

2.下边进入实际开发中的常见配置。

2.1、第一个问题:当你X轴的文本过长或者想旋转斜着放这么办呢,这时候就需要自己配置xAxis的axisLabel,

比如想文本过长实现换行,则可以这样配置:

xAxis : [
                    {
                        type : \'category\',
                        data : xAxisdata,
                        axisLabel : {
                            interval : 0,
                            formatter : function(params){
                                var newParamsName = "";
                                var paramsNameNumber = params.length;
                                var provideNumber = 7;
                                var rowNumber = Math.ceil(paramsNameNumber / provideNumber);
                                if (paramsNameNumber > provideNumber) {
                                    for (var p = 0; p < rowNumber; p++) {
                                        var tempStr = "";
                                        var start = p * provideNumber;
                                        var end = start + provideNumber;
                                        if (p == rowNumber - 1) {
                                            tempStr = params.substring(start, paramsNameNumber);
                                        } else {
                                            tempStr = params.substring(start, end) + "\\n";
                                        }
                                        newParamsName += tempStr;
                                    }

                                } else {
                                    newParamsName = params;
                                }
                                return newParamsName
                            }

                        }
                    }
  ]

这个是7个字符就实现换行,如图:

如果想文本斜着放,旋转一些角度,则这样配置:

axisLabel:{
            show:true,
             rotate:45,
     },

则实现这样的效果:

2.不显示Y轴或者不现实X轴,或者数值显示更改:

show设为false则不显示。

3.要默认显示表格上的数值,则配置series下:

效果:

 

 4.多表混合的情况,比如一个柱状图和折线图混合,并且需要两个Y轴的情况,则:

yAxis: [
                {
                    type: \'value\',
                    min: 0,
                    name:\'region\',
                    max: 100.00,
                    interval: 10,
                    splitLine:{show: false},//去除网格线
                    axisLabel: {
                        formatter: \'{value} %\'
                    }
                },
                {
                    type: \'value\',
                    name: \'Increase\',
                    min: -100,
                    max: 600,
                    interval: 50,
                    splitLine:{show: false},//去除网格线
                    show:true,
                    axisLabel: {
                        formatter: \'{value} %\'
                    },
                }
            ],//配置两条Y轴

则在series下通过yAxisIndex去选择哪个Y轴,比如:

{
                    name:\'West\',
                    type:\'bar\',//柱状图
                    itemStyle:{
                        normal:{
                            color:\'#D1D1D1\',
                        }
                    },
                    data:West
                },
                {
                    name:\'National\',
                    type:\'line\',//折线图
                    yAxisIndex: 0,//选择第一个Y坐标
                    data:National,
                    itemStyle : {  
                        normal : {  
                            color:\'#9F5E36\',  
                            lineStyle:{  
                                color:\'#9F5E36\'  
                            },
                            borderWidth:5,
                            label: {show: true,color:\'#000\'},
                        }  
                    },  
                },

5.柱状图每个柱子需要配置不一样的颜色的时候怎么办呢?

series: [
                    {
                        type: \'bar\',
                        data: [18203, 23489, 29034, 14970],
                        itemStyle:{
                            normal:{
                                color:function(params){
                                    var colorList = [\'#D4C880\',\'#D1D1D1\',\'#01A3D4\',\'#8EA9C4\']; 
                                    return colorList[params.dataIndex] ;
                                }
                            }//多个颜色柱子
                        },
                        label:{
                            normal:{
                                show:true,
                                position:\'right\'
                            }
                        }
                        
                    },
                ]

效果图:

6、其他配置

textStyle一般为配置字体样式,包括颜色啊,字体大小等等;

formatter一般为自定义配置项。

时间问题,先给大家分享到这里,有时间再完善,有问题可评论里边一起探讨,谢谢。

以上是关于Vue使用Echarts以及Echarts配置分享的主要内容,如果未能解决你的问题,请参考以下文章

Echarts 双柱状图+折线图合并---实现效果详解(vue+Echarts实现)

vue 2.0 全局引入eCharts以及按需引用eCharts

vue 使用echarts出现警告以及图表在页面的自适应

简单介绍Vue使用echarts定制特殊的仪表盘

vue与echarts结合使用

在vue项目中封装echarts的正确姿势