Echarts.js简介

Echarts.js简介,第1张

在平时开发项目时,免不了需要对数据进行图表显示的需求,比如:趋势图、饼状图、柱形图等。

Echartsjs是来自百度团队研发的图表js插件,利用HTML+js实现折线图、饼状图、热点图、3d图形等等,可在PC和移动端显示,加载速度快,功能丰富。

>

提取码:aihy

为Echarts放置一个具备宽高的DOM容器

Echarts加载数据

在使用 echarts 生成图表时,经常需要做繁琐的数据类型转化、修改复杂的配置项,v-charts 的出现正是为了解决这个痛点。基于 Vue20 和 echarts 封装的 V-Charts 图表组件,只需要统一提供一种对前后端都友好的数据格式设置简单的配置项,便可轻松生成常见的图表。

v-charts 已经处理了关于echarts依赖引入的问题,保证所使用的图表,都是最小的文件。

npm安装

引入v-charts

完整引入

按需引入

V-Charts的每种图表组件,都单独打包到lib文件夹下,以下为案例

使用时,可以直接将单个图表引入到项目中,对应上面图表看自己的项目需求

配置项                            简介                       类型                            备注

data                              图表数据                 Object                columns 代表指标和维度名称,

                                                                                               rows 为数据内容

width                             图表宽度                  String                 默认 auto

height                            图表高度                  String                 默认 400px

settings                         图表配置项               Object                -

colors                            颜色列表                    Array                 -

tooltip-visible                是否显示提示框          Boolean            默认为 true

legend-visible               是否显示图例              Boolean            默认为 true

legend-position             图例显示位置              String               可选'left', 'top', 'right', 'bottom'

grid                                网格配置                     Object               -

events                        为图表绑定事件              Object             包含事件名-事件处理函数的对象

before-config         对数据提前进行额外的处理   Function      在数据转化为配置项开始前触发,

                                                                                                 参数为 data,返回值为表格数据

after-config         生成echarts配置进行额外的处理  Function   在数据转化为配置项结束后触

                                                                              发,参数为 options,返回值为 echarts 配置

after-set-option       生成图后获取echarts实例             Function                  参数为echarts实例

after-set-option-once  图后获取echarts只执行一次      Function               参数为echarts实例

mark-line                 图表标线                          Object                                   -                

mark-area                图表标志区域                  Object                                    -

visual-map              视觉映射组件                  Array, Object                            -

mark-point               图表标点                          Object                                     -

data-zoom          区域缩放组件                       Array, Object                           -

toolbox                 工具箱                                Object                                     -

title                        图表标题                            Object                                     -

init-optionsinit       附加参数                              Object                                    -

theme                 自定义主题                            Object                         内容为自定义主题参数

theme-name      自定义主题名称                        String           内容为全局注册的自定义主题名称

loading               加载状态                                   Boolean               默认为false

data-empty         暂无数据状态                            Boolean              默认为false

judge-width      是否处理生成图表时的宽度问题   Boolean             默认为 true

width-change-delay容器宽度变化的延迟              Number              默认为300

备注:使用loading和dataEmpty属性前需引入css import 'v-charts/lib/stylecss'

同时,为了能够更方便的设置属性配置项等,可以通过extend属性实现对已配置好的内部属性进行单独的设置,extend为对象类型,对象内的属性可以是函数,也可以对象,也可以是其他类型的值当属性为函数时,设置的是函数的返回值当属性为对象时,如果在options中对应的属性为对象(eg: tooltip)或包含对象的数组(eg: series),对应的配置会被合并,否则将直接覆盖对应的配置具体使用方法可以参考下面的属性配置示例最后,下面这些与echarts配置项对应的属性也被加到了组件上,设置后将会直接覆盖options原有的对应属性。

备注:如果某属性加上去之后没有生效,很可能是没有引入相应的模块

另外一种是图表自身的属性,比如用户设置数据类型的dataType,这样的属性被置于settings内,每种图表的配置项不完全相同,具体参数参考 下述示例~

欢迎各位评论转发or收藏,新手求带~不喜勿喷!大爷,给小妞个赞赏吧~

定义一个数组为names,在 legend中通过 data: names传入图例名称;

创建一个数组mydata[],用for循环把后台传来的List整个放进去(注意格式为“{value:xxx, name:xxx}”),在option里的series中通过“data: mydata”传入即可;

var selectArr = optionlegenddata;

myCharton('legendselectchanged', function(obj) {

//alert("22");

var selected = objselected;

var name = objname;

});

overlaysetOption(option);

var myChart;

        //创建ECharts图表方法

        function DrawEChart(ec) {

            //--- 折柱 ---

            myChart = ecinit(documentgetElementById('main'));

            //图表显示提示信息

            myChartshowLoading({

                text: "图表数据正在努力加载"

            });

            //定义图表options

            var options = {

                title: {

                    text: "通过Ajax获取数据呈现图标示例",

                    subtext: ": ">        }

参考:>

    //基于准备好的dom,初始化echarts实例

    var myChart = echartsinit(this$refsmain);

    / 深拷贝一下 生成两个不同的对象 /

    thislineList = JSONparse(JSONstringify(thisreportsList));

    / 展示标题 /

    thislineListtitle = {

      text: "华东饼图数据",

    };

    / 展示提示框组件 /

    thislineListtooltip = {

      / a表示系列名 <br/>表示换行 b表示数据名 c表示数据值 d表示所占的百分比 /

      formatter: '{a} <br> {b} <br> {c} <br> ({d}%)'

    };

    / 把图例的位置调整一下 /

    thislineListlegendtop = '10%';

    thislineListlegendleft = '0';

    / 只显示华东的饼图数据 /

    thislineListseriessplice(1)

    / 先把图标的类型都改成饼图 /

    thislineListseries[0]type = 'pie';

    / 把图例中除了华东的图例都删掉 /

    thislineListlegenddatasplice(1);

    / 拿到时间集合用来展示饼图的name值 /

    let nameList = thislineListxAxis[0]data;

    / 拿到数据用来展示饼图的value值 /

    let valueList = thislineListseries[0]data;

    /  let data = [{

      name:"2017-12-27",

      value:2999

    }] /

    let newArr = [];

    / 下面的 *** 作是为了把两个数组整合成上面的格式 /

    nameListforEach((r, i) => {

      let obj = {

        name: r,

        / 因为两个数组的长度是一样的,

        索引对应的值也是一样的,key和value的值是相对应,

        所以直接使用如下方式取值 /

        value: valueList[i]

      }

      / 把组装好的对象塞到新数组中 /

      newArrpush(obj)

    })

 / 给华东的数据组转好格式后重新赋值,为了展示饼图线对应的名字 /

    thislineListseries[0]data = newArr;

    / 设置饼图的圆心的大小和圆的大小 /

    thislineListseries[0]radius = ['10%', '45%'];

    / 设置圆的上下左右的距离 /

    thislineListseries[0]center = ['58%', '60%'];

    / 把圆的形状设置成玫瑰形 /

    thislineListseries[0]roseType = 'area';

    / 给圆设置圆角 /

    thislineListseries[0]itemStyle = {

      borderRadius: 5

    }

    / 把x轴隐藏 /

    thislineListxAxis = {

      show: false

    }

    / 把y轴隐藏 /

    thislineListyAxis = {

      show: false

    }

    // 绘制图表

    myChartsetOption(thislineList);

    windowPieChart = myChart;

  },

通过 npm 获取 echarts,npm install echarts --save

为了省事,全局引用echarts

打开mainjs 文件

echarts 新版本跟之前import 方式不一样了,需要as 一下。

放到全局就不用来回引用了,使用时候直接this$echarts就可以。

从echart 官网上面扒拉下来第一个例子,修改一下

最后初始化这个myChart的时候,一定不要放到create 事件里面,因为界面没有初始化完成,啥都加载不出来

以上就是关于Echarts.js简介全部的内容,包括:Echarts.js简介、v-charts使用心得、Echarts通过Ajax动态获取后端数据(饼状图,柱状图)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9630571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存