欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

解决百度Echarts图表坐标轴越界的方法

程序员文章站 2022-06-03 12:32:09
echarts是由百度提供的数据可视化解决方案, 可以让我们快速实现功能丰富的图表, 使用方法 1.引入echarts.min.js文件 下载echart...

echarts是由百度提供的数据可视化解决方案, 可以让我们快速实现功能丰富的图表,

使用方法

1.引入echarts.min.js文件

下载echarts.min.js文件,

解决百度Echarts图表坐标轴越界的方法

创建一个挂载节点

 解决百度Echarts图表坐标轴越界的方法

将数据展示到挂载节点

生成数据, 并将数据导入到option配置对象中

    // 创建数据
    var base = +new date(1968, 9, 3);
    var oneday = 24 * 3600 * 1000;
    var date = [];

    var data = [math.random() * 300];

    for (var i = 1; i < 20000; i++) {
      var now = new date(base += oneday);
      date.push([now.getfullyear(), now.getmonth() + 1, now.getdate()].join('/'));
      data.push(math.round((math.random() - 0.5) * 20 + data[i - 1]));
    }
    
    // 创建对象option
    option = {
      tooltip: {
        trigger: 'axis',
        position: function (pt) {
          return [pt[0], '10%'];
        }
      },
      title: {
        left: 'center',
        text: '大数据量面积图',
      },
      toolbox: {
        feature: {
          datazoom: {
            yaxisindex: 'none'
          },
          restore: {},
          saveasimage: {}
        }
      },
      xaxis: {
        type: 'category',
        boundarygap: false,
        data: date
      },
      yaxis: {
        type: 'value',
        boundarygap: [0, '100%']
      },
      datazoom: [{
        type: 'inside',
        start: 0,
        end: 10
      }, {
        start: 0,
        end: 10,
        handleicon: 'm10.7,11.9v-1.3h9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4c19.5,16.3,15.6,12.2,10.7,11.9z m13.3,24.4h6.7v23h6.6v24.4z m13.3,19.6h6.7v-1.4h6.6v19.6z',
        handlesize: '80%',
        handlestyle: {
          color: '#fff',
          shadowblur: 3,
          shadowcolor: 'rgba(0, 0, 0, 0.6)',
          shadowoffsetx: 2,
          shadowoffsety: 2
        }
      }],
      series: [
        {
          name:'模拟数据',
          type:'line',
          smooth:true,
          symbol: 'none',
          sampling: 'average',
          itemstyle: {
            color: 'rgb(255, 70, 131)'
          },
          areastyle: {
            color: new echarts.graphic.lineargradient(0, 0, 0, 1, [{
              offset: 0,
              color: 'rgb(255, 158, 68)'
            }, {
              offset: 1,
              color: 'rgb(255, 70, 131)'
            }])
          },
          data: data
        }
      ]
    };

将option添加到挂载节点

// 将option数据挂载到main节点
echarts.init(document.getelementbyid('main')).setoption(option);

解决百度Echarts图表坐标轴越界的方法

如何防止坐标轴越界

上方图表如果展示到移动版, 坐标轴可能部分无法显示

解决百度Echarts图表坐标轴越界的方法

解决方法很简单,只需在option中加一个配置项即可

grid:{
    containlabel: true
   },

解决百度Echarts图表坐标轴越界的方法

源码:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport"
     content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  <title>echarts-demo</title>
  <script src="./echarts.min.js"></script>
</head>
<body>
  <div id="main" style="width:100%;height:400px;"></div>
  <script>
    // 创建数据
    var base = +new date(1968, 9, 3);
    var oneday = 24 * 3600 * 1000;
    var date = [];

    var data = [math.random() * 300];

    for (var i = 1; i < 20000; i++) {
      var now = new date(base += oneday);
      date.push([now.getfullyear(), now.getmonth() + 1, now.getdate()].join('/'));
      data.push(math.round((math.random() - 0.5) * 20 + data[i - 1]));
    }

    // 创建对象option
    option = {
      tooltip: {
        trigger: 'axis',
        position: function (pt) {
          return [pt[0], '10%'];
        }
      },
      title: {
        left: 'center',
        text: '大数据量面积图',
      },
      toolbox: {
        feature: {
          datazoom: {
            yaxisindex: 'none'
          },
          restore: {},
          saveasimage: {}
        }
      },
      xaxis: {
        type: 'category',
        boundarygap: false,
        data: date
      },
      yaxis: {
        type: 'value',
        boundarygap: [0, '100%']
      },
      datazoom: [{
        type: 'inside',
        start: 0,
        end: 10
      }, {
        start: 0,
        end: 10,
        handleicon: 'm10.7,11.9v-1.3h9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4c19.5,16.3,15.6,12.2,10.7,11.9z m13.3,24.4h6.7v23h6.6v24.4z m13.3,19.6h6.7v-1.4h6.6v19.6z',
        handlesize: '80%',
        handlestyle: {
          color: '#fff',
          shadowblur: 3,
          shadowcolor: 'rgba(0, 0, 0, 0.6)',
          shadowoffsetx: 2,
          shadowoffsety: 2
        }
      }],
      series: [
        {
          name:'模拟数据',
          type:'line',
          smooth:true,
          symbol: 'none',
          sampling: 'average',
          itemstyle: {
            color: 'rgb(255, 70, 131)'
          },
          areastyle: {
            color: new echarts.graphic.lineargradient(0, 0, 0, 1, [{
              offset: 0,
              color: 'rgb(255, 158, 68)'
            }, {
              offset: 1,
              color: 'rgb(255, 70, 131)'
            }])
          },
          data: data
        }
      ],
      grid:{
        containlabel: true
      }
    };
    // 将option数据挂载到main节点
    echarts.init(document.getelementbyid('main')).setoption(option);

  </script>
</body>
</html>

小结:

上面实例有一个在线的版本,, 感兴趣可以打开网页, 体会一下各种配置项的用途

博主开始没有找到正确的解决方法, 导致走了弯路, 最后发现添加一个参数就能顺利解决, 这里分享给大家,希望沉迷开发的小伙伴, 能少走弯路

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。