javascript - 鼠标滚动缩放不适用于仪表板图表

标签 javascript google-visualization zooming

我想添加鼠标滚动缩放,但是 explorer 功能在图表选项中似乎不起作用。如何让鼠标滚动来缩放图表?

explorer: {
    axis: 'horizontal',
    keepInBounds: true,
    maxZoomIn: 4.0
}

这是我的图表:

google.load('visualization', '1', {
  packages: ['controls', 'charteditor']
});
google.setOnLoadCallback(drawChart);

function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'X');
  data.addColumn('number', 'Y1');
  data.addColumn('number', 'Y2');


  var data1 = 5;
  var data2 = 100;
  for (var i = 0; i < 1000; i++) {
    data.addRows([
      [i, i + data1, i + data2]

    ]);
  }

  var dash = new google.visualization.Dashboard(document.getElementById('dashboard'));

  var control = new google.visualization.ControlWrapper({
    controlType: 'ChartRangeFilter',
    containerId: 'control_div',
    options: {
      title: 'Průběh tlaku v čase',
      hAxis: {
        title: 'Čas',
        titleTextStyle: {
          color: '#333'
        },
        slantedText: true,
        slantedTextAngle: 80
      },
      filterColumnIndex: 0,
      ui: {
        chartOptions: {
          height: 40,
          width: 600,
          chartArea: {
            width: '90%'
          }
        }
      },
      colors: ['#D44E41']
    }

  });

  var chart = new google.visualization.ChartWrapper({
    chartType: 'LineChart',
    containerId: 'chart_div',

  });

  function setOptions(wrapper) {
    wrapper.setOption('width', 600);
  }

  dash.bind([control], [chart]);
  dash.draw(data);
  google.visualization.events.addListener(control, 'statechange', function() {});
}
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="dashboard"></div>
<div id="chart_div" style="width: 100%; height: 100%;"></div>
<div id="control_div"></div>

View at JSFiddle

最佳答案

通过将 explorer 添加到 options,我取得了一些成功对于 ChartWrapper .鼠标滚动现在可缩放图表,但不会更新 ChartRangeFilter 显示。如果鼠标同时缩放图表和范围过滤器以保持它们同步,那就太好了。

google.load('visualization', '1', {
  packages: ['controls', 'charteditor']
});
google.setOnLoadCallback(drawChart);

function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'X');
  data.addColumn('number', 'Y1');
  data.addColumn('number', 'Y2');


  var data1 = 5;
  var data2 = 100;
  for (var i = 0; i < 1000; i++) {
    data.addRows([
      [i, i + data1, i + data2]

    ]);
  }

  var dash = new google.visualization.Dashboard(document.getElementById('dashboard'));

  var control = new google.visualization.ControlWrapper({
    controlType: 'ChartRangeFilter',
    containerId: 'control_div',
    options: {
      title: 'Průběh tlaku v čase',
      hAxis: {
        title: 'Čas',
        titleTextStyle: {
          color: '#333'
        },
        slantedText: true,
        slantedTextAngle: 80
      },
      filterColumnIndex: 0,
      ui: {
        chartOptions: {
          height: 40,
          width: 600,
          chartArea: {
            width: '90%'
          }
        }
      },
      colors: ['#D44E41']
    }

  });

  var chart = new google.visualization.ChartWrapper({
    chartType: 'LineChart',
    containerId: 'chart_div',
    options: {
      explorer: {
        axis: 'horizontal',
        keepInBounds: true,
        maxZoomIn: 4.0
      }
    }
  });

  function setOptions(wrapper) {
    wrapper.setOption('width', 600);
  }

  dash.bind([control], [chart]);
  dash.draw(data);
  google.visualization.events.addListener(control, 'statechange', function() {});
}
#chart_div {
  width: 100%;
  height: 100%;
}
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="dashboard"></div>
<div id="chart_div"></div>
<div id="control_div"></div>

关于javascript - 鼠标滚动缩放不适用于仪表板图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42814222/

相关文章:

javascript - 表格单元格中的内联 CSS 元素溢出

google-visualization - 谷歌图表上的最大值和最小值

android - 我的 Imageview 在最大级别缩放后停止移动

html - 如何在html中缩放图像的一部分?

javascript - AngularJs ng-click 不适用于 Bootstrap 下拉菜单

javascript - Reactjs:依赖 render() 函数参数进行渲染不起作用

javascript - AngularJS 可以在加载后编译由外部库附加的 HTML 吗?

java - Google App Engine 不支持 java.util.logging.Logger : com/ibm/icu/impl/ICULogger 的子类

javascript - 图像质量差使用 JSPDF 将 Google Charts 插入 PDF

javascript - 无法在我的 flutter 网络中删除放大和缩小