【问题标题】:Remove borders and gridlines around google chart timeline删除谷歌图表时间线周围的边框和网格线
【发布时间】:2021-02-03 14:48:54
【问题描述】:

我需要从谷歌图表时间表中删除边框和网格线(请参阅documentation

现在看起来像这样:with borders
它应该是这样的:without borders

我为它做了一个堆栈闪电战:https://stackblitz.com/edit/js-ozv5hr?file=index.html

您可以使用例如折线图的配置选项似乎不适用于时间线。

【问题讨论】:

  • 这可能是正确的问题:stackoverflow.com/a/19298332/533976
  • 这个问题与时间线图有关,它与corechart包中的图表有不同的选项,例如@vovchisko找到的答案中使用的组合图。该解决方案在这里不起作用...

标签: javascript charts google-visualization timeline


【解决方案1】:

没有可用于移除边框的配置选项,
但我们可以在图表的'ready' 事件中手动删除它们。

请参阅以下工作 sn-p...

google.charts.load("current", {
  packages: ["timeline"]
}).then(function () {
  var container = document.getElementById("timeline");
  var chart = new google.visualization.Timeline(container);
  var dataTable = new google.visualization.DataTable();

  dataTable.addColumn({ type: "string", id: "Label" });
  dataTable.addColumn({ type: "string", id: "Type" });
  dataTable.addColumn({ type: "date", id: "Start" });
  dataTable.addColumn({ type: "date", id: "End" });
  dataTable.addRows([
    ["A", "A", new Date(2021, 0, 0, 0), new Date(2021, 0, 0, 1)],
    ["A", "B", new Date(2021, 0, 0, 1), new Date(2021, 0, 0, 2)],
    ["A", "C", new Date(2021, 0, 0, 2), new Date(2021, 0, 0, 3)]
  ]);

  var options = {
    timeline: {
      groupByRowLabel: true,
      showRowLabels: false,
      showBarLabels: false
    },
    avoidOverlappingGridLines: false,
    hAxis: {
      format: "HH:mm"
    },
    gridlines: {
      color: "none"
    }
  };

  google.visualization.events.addListener(chart, 'ready', function () {
    // find <rect> elements
    var rects = container.getElementsByTagName('rect');
    Array.prototype.forEach.call(rects, function(rect) {
      if (rect.getAttribute('stroke') === '#9a9a9a') {
        // remove border
        rect.setAttribute('stroke-width', '0');
      }
    });

    // find <path> elements
    var paths = container.getElementsByTagName('path');
    Array.prototype.forEach.call(paths, function(path) {
      if ((path.getAttribute('stroke') === '#ffffff') || (path.getAttribute('stroke') === '#e6e6e6')) {
        // remove border
        path.setAttribute('stroke-width', '0');
      }
    });
  });

  chart.draw(dataTable, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="timeline"></div>

【讨论】:

  • 确实有,但已经一岁了。我希望找到一个不手动修改 svg 的新解决方案
  • 那么坦克;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多