zoukankan      html  css  js  c++  java
  • Echartjs axis.getAxesOnZeroOf is not a function

    该问题已经解决,下面是解决思路!

    问题描述:

      axis.getAxesOnZeroOf is not a function

      使用echart 出现报这句错误,请求解决方案!

    问题原因:

      我给坐标设置了最大值和最小值导致的,怎么说?客户需求坐标的刻度需要保留两位小数如 2.00,我们是可以通过设置 axisLabel 的 formatter 来搞定的。但如果是自动设置了最大值,最小值就要仔细检查了。如果我的问题不是导致你的问题,请根据我的方式去分析,就可以找到答案。下面看我的代码

    var getDefaultY = function (colorIndex, measure) {
                return {
                    type: 'value',
                    min: function (value) {
                        var min = value.min;
                        var max = value.max;
    
                        //报错误 axis.getAxesOnZeroOf is not a function
                        //min应该返回的是数字型,我使用了toFixed变为了string
                        return (Math.floor((Math.round((min - (max - min) * 0.1) * 100))) / 100).toFixed(2);
    
                        //改为如下正常
                        return parseFloat((Math.floor((Math.round((min - (max - min) * 0.1) * 100))) / 100).toFixed(2))
    
                        //我进一步取整
                        var val = parseFloat((Math.floor((Math.round((min - (max - min) * 0.1) * 100))) / 100).toFixed(2));
                        return Math.floor(val)
                    },
                    max: function (value) {
                        var min = value.min;
                        var max = value.max;
                        var val = parseFloat((Math.ceil((Math.round((max + (max - min) * 0.1) * 100))) / 100).toFixed(2));
                        return Math.ceil(val);
                    },
                    splitLine: {
                        show: false
                    },
                    splitArea: {
                        show: false
                    },
                    axisLabel: {
                        //使用formatter返回string是非常正确的
                        formatter: function (value, index) {
                            var measure = measure || "";
                            if (typeof (value) == 'number') {
                                return value.toFixed(2) + measure;
                            }
                            return value + measure;
                        }
                    }
                };
            };

    问题分析过程

                //第一步:将optiog转化为string,然后将string转发为json放在管网案例上取执行
                option = JSON.stringify(option);
                option = JSON.parse(option);
    
                gb.chart.setOption(option, true)

    这步中我们的方法会被去掉的,因为function不能转化为 JSON.下一步你就要检查你的 option 中所带的方法了。那么我的 option 主要有三个方法,分别是min ,max,还有tooltip中的formatter 

    obj.tooltip = {
                trigger: 'axis',
                axisPointer: {
                    type: 'cross'
                },
                formatter: function (datas) {
                    try {
                        var date = new Date(datas[0].data.measureTime);
                        var res = "&nbsp;&nbsp;&nbsp;&nbsp;" + date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + '<br/>';
                        var length = datas.length;
                        for (var i = 0; i < length; i++) {
                            const element = datas[i].data;
                            var value = element[datas[i].dimensionNames[1]];
                            if (value != undefined) {
                                value = value.toFixed(2);
                            } else {
                                value = "";
                            }
                            res += '<span style="display:inline-block;margin-right:5px;border-radius:10px;10px;height:10px;background-color:' + datas.color + ';"></span>' + datas[i].seriesName + ':' + value + '<br/>';
    
                        }
                        return res;
                    }
                    catch (e) {
                        return "";
                    }
                }
    
            }

    然后使用google浏览器,然后将三个方法自己写的代码去掉,使用排除法就可以解决找到该问题根源!

  • 相关阅读:
    C# 如何telnet IP的某端口/ping 是否通
    centos7.9设置系统时间,并同步到硬件
    基于阿里云 DNS API 实现的 DDNS 工具
    GridControl 通用类2
    使用JSON.stringify时需注意的坑
    java中BigDecimal和0比较
    c# WindowsCommunityToolkit--- Shade Animation
    WPF 取消在触屏上点击按下不松开会出现矩形背景的效果
    c# 反射私有类和私有方法
    c# 汉字转拼音
  • 原文地址:https://www.cnblogs.com/gzbit-zxx/p/12030974.html
Copyright © 2011-2022 走看看