Google图表网格背景具有多种颜色

时间:2018-10-09 11:16:00

标签: javascript css svg charts google-visualization

我在下面的简单散点图上仅创建了一个点(我总是只有一个点)

enter image description here

在上面的图表中,我想将左上方和右下方的框标记为一种颜色,而其余两个框则标记为不同,以向用户提示其值是好是坏。

左上和右下为好(绿色),右上和左下为坏(红色)。

仅供参考,我正在添加颜色随处可见的示例图像

enter image description here

我已经搜索了很多,却找不到任何解决方案。我尝试了线性渐变,但是无法按照我想要的方式使用线性渐变。

是否可以在Google图表中为网格框着色?我还有其他方法可以做到吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

没有用于指定背景色的配置选项。
但是您可以使用堆积区域系列添加颜色。

有关图表,您将需要5个系列。

1)散布
2)区域-左低
3)区域-左高
4)区域-右低
5)区域-右高

请参阅以下工作片段...

google.charts.load('current', {
  packages:['corechart']
}).then(function () {
  var dataTable = new google.visualization.DataTable({
    cols: [
      {label: 'X', type: 'number'},
      {label: 'Left-Low', type: 'number'},
      {label: 'Left-High', type: 'number'},
      {label: 'Right-Low', type: 'number'},
      {label: 'Right-High', type: 'number'},
      {label: 'Y', type: 'number'}
    ],
    rows: [
      // scatter
      {c:[{v: 14}, {v: 130}, null, null, null, null]},
      // colors
      {c:[{v: 1}, null, {v: 170}, {v: 130}, null, null]},
      {c:[{v: 6}, null, {v: 170}, {v: 130}, null, null]},
      {c:[{v: 6}, null, {v: null}, {v: null}, {v: 170}, {v: 130}]},
      {c:[{v: 15}, null, {v: null}, {v: null}, {v: 170}, {v: 130}]},
    ]
  });

  var options = {
    colors: ['#ffffff'],
    legend: 'none',
    hAxis: {
      ticks: [1, 6, 15],
      title: 'Coleman-Liau Index'
    },
    height: 400,
    isStacked: true,
    series: {
      // Left-Low
      1: {
        areaOpacity: 1,
        color: '#e53935',
        enableInteractivity: false,
        type: 'area',
        visibleInLegend: false
      },

      // Left-High
      2: {
        areaOpacity: 1,
        color: '#43a047',
        enableInteractivity: false,
        type: 'area',
        visibleInLegend: false
      },

      // Right-Low
      3: {
        areaOpacity: 1,
        color: '#43a047',
        enableInteractivity: false,
        type: 'area',
        visibleInLegend: false
      },

      // Right-High
      4: {
        areaOpacity: 1,
        color: '#e53935',
        enableInteractivity: false,
        type: 'area',
        visibleInLegend: false
      }
    },
    seriesType: 'scatter',
    vAxis: {
      ticks: [40, 170, 300],
      title: 'Talking Speed (WpM)'
    }
  };

  var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
  chart.draw(dataTable, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>