1. 程式人生 > >echarts 柱狀圖下鑽功能

echarts 柱狀圖下鑽功能

var drillDown = {
  getOption : function () {
  var option = null;
  option = {
  title: {
  text: '折線圖下鑽示例',
  left: 'center'
  },
  tooltip: {
  trigger: 'item',
  formatter: '{a} <br/>{b} : {c}'
  },
  legend: {
  left: 'left',
  data: ['月資料']
  },
  xAxis: {
  type: 'category',
  name: 'x',
  splitLine: {show: false},
  data: ['201601', '201602', '201603', '201604', '201605', '201606', '201607', '201608', '201609']
  },
  grid: {
  left: '3%',
  right: '4%',
  bottom: '3%',
  containLabel: true
  },
  yAxis: {
  type: 'log',
  name: 'y'
  },
  series: [
  {
  name: '月資料',
  type: 'line',
  data: [1, 2, 4, 8, 16, 32, 64, 128, 256]
  }
  ]
  };
  return option;
  },
  initChart : function (myChart,option) {
  myChart.setOption(option);
  myChart.on('click',function(object){
  // 銷燬之前的echarts例項
  echarts.dispose(dom);
  // 初始化一個新的例項
  var myChart = echarts.init(dom);
  // object為當前的這個echart物件,大家可以自己打印出來看看
  // console.dir(object);
  // 我們可以看到name屬性即為當前點選點的對應月份值,那麼我們可以通過這個值去介面查詢對應201609月份下的每一天的值.
  // 此處的201609月份資料可以通過介面讀取
  // $.ajax(
  // type : 'get',
  // url : interfaceUrl + '&month=' + object.name, // 此處可以替換為你的介面地址
  // dataType : 'json',
  // success : function (msg){
  // option.xAxis.data = msg.xAxis;
  // option.series[0].data = msg.yAxis[0];
  // myChart.setOption(option, true);
  // }
  // );
   
  // 我這裡就模擬一個測試資料,做為demo演示
  option.xAxis.data = [
  '2016-09-01','2016-09-02','2016-09-03','2016-09-04','2016-09-05','2016-09-06','2016-09-07','2016-09-08',
  '2016-09-09','2016-09-10','2016-09-11','2016-09-12','2016-09-13','2016-09-14','2016-09-15','2016-09-16',
  '2016-09-17','2016-09-18','2016-09-19','2016-09-20','2016-09-21','2016-09-22','2016-09-23','2016-09-24',
  '2016-09-25','2016-09-26','2016-09-27','2016-09-28','2016-09-29','2016-09-30'
  ];
  option.series[0].data = [
  3,4,5,6,5,6,7,8,8,9,
  12,13,15,16,20,12,30,21,22,29,
  30,31,33,34,35,36,20,29,33,40
  ];
  myChart.setOption(option, true);
  });
  },
  };
<!DOCTYPE html>
  <html style="height: 100%">
  <head>
  <meta charset="utf-8">
  </head>
  <body style="height: 100%; margin: 0">
  <div style="margin-left:40%;margin-top:2%">
  <button id='return-button' value=''>返回</button>
  </div>
  <div id="container" style="height: 50%;width: 50%"></div>
  <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts-all-3.js"></script>
  <script type="text/javascript" src="../jquery.js"></script>
  <script type="text/javascript" src="./drillDown.js"></script>
  <script type="text/javascript">
  var dom = document.getElementById("container");
  var myChart = echarts.init(dom);
  var option = drillDown.getOption();
  drillDown.initChart(myChart,option);
   
  $('#return-button').on('click',function(){
  var myChart = echarts.init(dom);
  var option = drillDown.getOption();
  drillDown.initChart(myChart,option);
  });
  </script>
  </body>
  </html>