javascript - 无法放大 Google Charts

标签 javascript charts google-visualization

我创建了一个 Google 图表,可以直观显示我家的室外温度。数据量不断增长,所以图表在几天内变得不可读;-) 我希望能够在 x 轴上放大,但我无法使用 explorer 选项让它工作。 我试过:

explorer: { actions: ["dragToZoom", "rightClickToReset"], 
            maxZoomIn: 0.2,
            maxZoomOut: 1.0,
            zoomDelta: 10,
            axis: "horizontal",
            keepInBounds: true
          },

但这似乎行不通。

到目前为止,这是我得到的: https://codepen.io/wtrdk/pen/wpGVVWhttps://weather.wtrdk.nl/test.html

更新: 我添加了以下代码来创建一个连续的轴,但我仍然无法放大...

var view = new google.visualization.DataView(data);
  view.setColumns([
    // first column is calculated
    {
      calc: function (dt, row) {
        // convert string to date
        return new Date(dt.getValue(row, 0));
      },
      label: data.getColumnLabel(0),
      type: 'datetime'
    },
    // just use index # for second column
    1
     ]);

最佳答案

尝试使用当前库...

<script src="https://www.gstatic.com/charts/loader.js"></script>

jsapi已过时,根据 release notes ...

The version of Google Charts that remains available via the jsapi loader is no longer being updated consistently. Please use the new gstatic loader.js from now on.

这只会改变 load声明,
请参阅以下工作片段...

google.charts.load('current', {
  packages: ['corechart', 'controls']
}).then(function () {
  $.get(
    "https://cors-anywhere.herokuapp.com/https://weather.wtrdk.nl/temperature.csv",
    function(csvString) {
      // transform the CSV string into a 2-dimensional array
      var arrayData = $.csv.toArrays(csvString, {
        onParseValue: $.csv.hooks.castToScalar
      });

      // this new DataTable object holds all the data
      var data = new google.visualization.arrayToDataTable(arrayData);
      
       var view = new google.visualization.DataView(data);
  view.setColumns([
    // first column is calculated
    {
      calc: function (dt, row) {
        // convert string to date
        return new Date(dt.getValue(row, 0));
      },
      label: data.getColumnLabel(0),
      type: 'datetime'
    },
    // just use index # for second column
    1
     ]);


      var temperature = new google.visualization.ChartWrapper({
        chartType: "AreaChart",
        containerId: "temperature",
        dataTable: view,
        options: {
          height: 400,
          explorer: {
            actions: ["dragToZoom", "rightClickToReset"],
            //axis: "horizontal",
            //keepInBounds: true
          },
          animation: { duration: 2000, easing: "out", startup: true },
          title: "Temperature",
          titleTextStyle: { color: "grey", fontSize: 11 },
          legend: { textStyle: { color: "grey", fontSize: 11 } },
          backgroundColor: { fill: "transparent" },
          colors: ["#e39c3a"],
          hAxis: {
            textStyle: {
              color: "grey",
              fontSize: 11
            },
            //format: 'datetime',
          },
          vAxis: {
            title: "°C",
            titleTextStyle: {
              color: "grey",
              fontSize: 22
            },
            textStyle: {
              color: "grey",
              fontSize: 11
            }
          }
        }
      });
      temperature.draw();
    }
  );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://weather.wtrdk.nl/jquery.csv.min.js"></script>
<body bgcolor="#282B30">
  <div id="temperature"></div>
</body>

关于javascript - 无法放大 Google Charts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47901940/

相关文章:

JavaScript setTimeout 不会消亡。

javascript - 谷歌图表仅在页面刷新时加载

javascript - 来自 mysql、php/JQuery 的 Google 折线图

javascript - 如何在背景中使用图像而不是谷歌图表中每一列的颜色?

google-visualization - Google Charts API - 重叠的 X 轴标签

javascript - Python - 请求/RoboBrowser - ASPX POST JavaScript

javascript - 在 ui-grid angularjs 中显示 Json 响应

javascript - 使用 Math.max 调用 Array.prototype.map 返回 NaN 数组

charts - 如何删除 dojo 折线图中虚线的灰色背景?

javascript - 无效的 Json 字符串 Google 可视化图表