• echart.js 遇到的问题及解决


    总体上echart.js 要比chartjs 样式上好很多,从缩放,多数据显示上,显得更为优雅一些.为了省得多次学习,还是建议初学者直接echart ,省的来回学不同的chart,

    1:项目中报错Cannot read property 'getAttribute' of undefined echarts.min.js:22

    多半是页面内网页元素与echart加载顺序或者echart数据污染出现了问题, 不同js内同事有ehart的操作等.

    2:点击不同按钮选择不同日期展示原数据出现叠加不刷新的问题

    就定义一个option .

    ajax 请求成功数据来之后开始绑id ,做数据填充,就是每次请求数据成功之后绑定dom id 

    function getDataShow1(_num) {
            $.ajax({
                url: '/ccc/vvv/xx',
                type: 'get',
                dataType: "json",
                async: false,
                data: {
                    num: _num
                },
                success: function (data1) {
                    console.log(data1);

    //清空原数据
    if (myChart != undefined) {
    myChart.dispose();// 移除容器上的 _echarts_instance
    }

    var myChart2 = echarts.init(document.getElementById('H_idstQr'));
                    myChart2.setOption(option, true);             
                    //刷新数据
                    var option2 = myChart2.getOption();
                    var xlist = data1.x;
                    for (var i = 0; i < xlist.length; i++) {
                        option2.xAxis[0].data.push(xlist[i]); //x轴日期
                    }
                    var datalist = data1.datalist;
                    for (var i = 0; i < datalist.length; i++) {
                        var _data = datalist[i].data;
                        if (datalist[i].name === 'xx') {
                            newColor = window.chartColors['ForestGreen'];
                        }
                        if (datalist[i].name === 'yyy') {
                            newColor = window.chartColors['ForestGreen'];
                        }
                     
                        var newserie = {
                            name: datalist[i].name,
                            type: 'line',
                            data: _data,
                            smooth: true,
                            itemStyle: {
                                normal: {
                                    color: newColor
                                }
                            }
                        }
                        option2.series.push(newserie);
                    }
                    myChart2.setOption(option2);
                }
                , error: function (err) {
                    // console.log(err.statusText);
                    console.log(err + '异常');
                }
            });
        };

     3: 数据在展示下放离x轴 留有较大空间问题 下边的

    min 和max 就是上下保留的距离  option 下yAxis设置
       yAxis: [
                {
                    type: 'value',
                    name: '温度',
                    min: function (value) {
                        return value.min - 3;
                    },
                    max: function (value) {
                        return value.max + 3;
                    },
                }
            ],
    yAxis.min   |   number, string, function
    
    [ default: null ]
    
    坐标轴刻度最小值。
    
    可以设置成特殊值 'dataMin',此时取数据在该轴上的最小值作为最小刻度。
    
    不设置时会自动计算最小值保证坐标轴刻度的均匀分布。

    4:去掉分部区域虚线  在option中series  内设置

        @* markArea: {
                                silent: true,
                                itemStyle: {
                                    color: "transparent",
                                    borderWidth: 1,
                                    borderType: 'dashed'
                                },
                                data: [[{
                                    name: sername+'分布区间',
                                    xAxis: 'min',
                                    yAxis: 'min'
                                }, {
                                    xAxis: 'max',
                                    yAxis: 'max'
                                }]]
                            },*@

    5:去掉平均值箭头线  在option中series  内设置

      @*     markLine: {
                                lineStyle: {
                                    type: 'solid'
                                },
                                data: [
                                    { type: 'average', name: '平均值' },
                                    { xAxis: 160 }
                                ]
                            }*@

     6:grid

    grid 为直角坐标系内绘图网格,可以设置 x y x2 y2 等值。这在控制图表摆放位置上,起了重要的作用。 

    如图所示,

    x 为直角坐标系内绘图网格左上角横坐标,数值单位px,支持百分比(字符串),如'50%'(显示区域横向中心)

    y 为左上纵坐标,x2为右下横坐标,y2为右下纵坐标。

    需要设置的话,就按照tooltip 或 legend 的格式设置就行。

    接下来就是 formatter 了。为了弥补 echarts 在时间或计量单位上格式的不足,echarts 暂时利用 formatter 来加上需要个格式,对数据呈现方式进行修改。

    在设置 formatter 的时候可以用在 tooltip 和 y 轴上。

    {Function},传递参数列表如下:

      • <Array> params : 数组内容同模板变量,[[a, b, c, d, e, data], [a1, b1, c1, d1, e1, data1], ...],不同的是当trigger为item时最后一项返回option中的完整data
      • <String> ticket : 异步回调标识
      • <Function> callback : 异步回调,回调时需要两个参数,第一个为前面提到的ticket,第二个为填充内容html
      • *函数回调时this指针指向当前图表实例(myChart)

    https://blog.csdn.net/qq_30264689/article/details/80911974

    grid: {
        left: '3%',
            right: '7%',
                bottom: '3%',
                    containLabel: true
    },

    上边设置

    上下左右不靠边

    下边设置 在option中  内设置

    grid: {
         x: 46,
            y: 30,
            x2: 32,
            y2: 40,
            borderWidth: 0
    },

     ok了 点没显示

    7:点不显示问题..后来发现是echart 版本问题

     8:散点图点的大小 symbolSize     在option中series  内设置

          var newserie = {
                        name: sername,
                        type: 'scatter',
                        data: dataarr,
                        color: newColor,  
                        symbolSize: 6,
  • 相关阅读:
    常用记录
    golang学习笔记之UDP:server端与client端
    golang学习笔记之tcp简单实现:server端与client端
    golang学习笔记之channel
    golang学习笔记之单元测试和压力测试
    Ubuntu 18.04桌面版安装
    Nas服务器使用xampp修改端口号
    Laravel使用Supervisor管理linux自动队列
    php 设计模式学习笔记之单例模式
    终极二分查找--传说十个人写九个有bug
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/14102940.html
Copyright © 2020-2023  润新知