zoukankan      html  css  js  c++  java
  • Echarts 使用(一):动态参数

    前言

    做大屏、数据可视化的话,图表类的必不可少。

    这其中使用 Echarts 的很多。

    一、参数动态返回值

    Echarts 中参数的配置功能很强大。对任何一项的配置都很细致。

    虽然这样,但是有时候不一定能到达需求。这时候能根据数据动态改变就好了。

    在官方配置项中,formatter 是支持函数回调的。官方的文档:

    formatter: function(params) => string
    // params 格式:
    {
        componentType: 'series',
        // 系列类型
        seriesType: string,
        // 系列在传入的 option.series 中的 index
        seriesIndex: number,
        // 系列名称
        seriesName: string,
        // 数据名,类目名
        name: string,
        // 数据在传入的 data 数组中的 index
        dataIndex: number,
        // 传入的原始数据项
        data: Object,
        // 传入的数据值。在多数系列下它和 data 相同。在一些系列下是 data 中的分量(如 map、radar 中)
        value: number|Array|Object,
        // 坐标轴 encode 映射信息,
        // key 为坐标轴(如 'x' 'y' 'radius' 'angle' 等)
        // value 必然为数组,不会为 null/undefied,表示 dimension index 。
        // 其内容如:
        // {
        //     x: [2] // dimension index 为 2 的数据映射到 x 轴
        //     y: [0] // dimension index 为 0 的数据映射到 y 轴
        // }
        encode: Object,
        // 维度名列表
        dimensionNames: Array<String>,
        // 数据的维度 index,如 0 或 1 或 2 ...
        // 仅在雷达图中使用。
        dimensionIndex: number,
        // 数据图形的颜色
        color: string,
    
    }

    可以根据当前数据项动态返回。

    一般用这个配置的也挺多。

    其实其他项也可以这样配置,到现在验证了 bar 的 itemStyle 的 color 这样可行其他不可行。

    下面是 bar 类型柱状颜色:

      series: [{
        name: '整改情况排名',
        type: 'bar',
        itemStyle: {
          color: function(params) {
         // colors 是自定义的颜色数组
    var num = colors.length return colors[params.dataIndex % num] } }, data: [] }]

    二、绑定 Options 问题

    这个是问题是在实际中遇到的。

    具体场景:同一个组件中有两个 Echarts bar 图表。所以在定义 options 用同一个,在处理数据时再处理:

    let tempOption = JSON.parse(JSON.stringify(czOptions))
    // 其他处理
    this.options = tempOption
    
    tempOption = JSON.parse(JSON.stringify(czOptions))
    // 其他处理
    this.optionsR = tempOption

    这样是简单的深度拷贝,能使两个相互独立出来没有关联,互不影响。

    但是会把 function 类型的属性忽略掉(所以上面写的动态参数无用)

    这时就只能在拷贝后再对动态参数赋值:

          tempOption.series[0].itemStyle.color = function(params) {
            var num = colors.length
            return colors[params.dataIndex % num]
          }

    这样能正常展示

    推荐

    Echarts 配置项说明

  • 相关阅读:
    Python与Hack之window下运行带参数的Python脚本,实现一个简单的端口扫描器
    Python与Hack之守护进程
    Python与Hack之Zip文件口令破解
    Mysql远程连接,并解决wordp主题添加问题
    基于PHP以及Mysql,使用WordPress搭建站点
    AngularJS学习之输入验证
    微信公众平台搭建
    innobackupex: fatal error: no ‘innodb_buffer_pool_filename’解决方法
    Python多线程
    tpcc
  • 原文地址:https://www.cnblogs.com/zhurong/p/13851868.html
Copyright © 2011-2022 走看看