【问题标题】:Separation line between each series in Stacked Chart (Google Charts)Stacked Chart(Google Charts)中每个系列之间的分隔线
【发布时间】:2018-02-08 09:11:34
【问题描述】:

我正在使用 Google Stack Chart 来生成我的报告。 示例Fiddle

这里的问题是我需要为图表中的每个系列设置一条分隔线。
我尝试了以下代码:

var dataView = new google.visualization.DataView(data);

dataView.setColumns([0,1,2, {"type": "string","role": "style","calc": ReturnStroke}, 3, {
                "type": "string",
                "role": "style",
                "calc": ReturnStroke
            }, 4, {
                "type": "string",
                "role": "style",
                "calc": ReturnStroke
            }, 5, {
                "type": "string",
                "role": "style",
                "calc": ReturnStroke
            },6,7
            ]);

function ReturnStroke(dataTable, rowNum) {
                return 'stroke-color: #99ebff;';
 }

chart.draw(dataView, options);

这对我有用。但这里的问题是,它是在条形图的四个边上绘制边界线,但我只需要在顶部。这只是我提供的示例数据。实际上,我的图表中有大约 500 列。像上面提到的那样手动指定它们是不切实际的。

有没有简单的方法可以在图表级别全局指定分隔线。

【问题讨论】:

    标签: jquery charts google-visualization


    【解决方案1】:

    不知道如何改变四边的笔画,
    但您可以动态构建视图列

    但是,颜色和笔触的样式需要合并到一个样式列中
    将上面发布的代码添加到小提琴中,
    笔触样式会覆盖数据表中设置的颜色样式

    这是一个如何动态构建视图列的示例......

    google.charts.load('current', {
      packages:['corechart']
    }).then(function () {
      var data = google.visualization.arrayToDataTable([
        ['Machine', '', '', '', '', ''],
        [0.5, null, null, null, null, 0.067],
        [1, 0.05, 0.0775, 0.069, 0.05, 0.067],
        [2, 0.05, 0.0775, 0.069, 0.05, 0.067],
        [2.5, null, null, null, null, 0.067]
      ]);
    
      var min = data.getColumnRange(0).min;
      var max = data.getColumnRange(0).max;
    
      var options = {
        width: 500,
        height: 500,
        legend: {
          position: 'none',
          maxLines: 6,
          textStyle: {
            color: 'black',
            fontSize: 10
          }
        },
        isStacked: true,
        seriesType: 'bars',
        series: {
          4: {
            type: "line",
            color: '#FF0000',
            visibleInLegend: false
          }
    
        },
        vAxis: {
          baseline: 0,
        },
        hAxis: {
          ticks: [{
            "v": 1,
            "f": "M1"
          }, {
            "v": 2,
            "f": "M2"
          }],
    
          viewWindow: {
            min: min,
            max: max
          }
        }
      };
    
      var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
    
      var dataView = new google.visualization.DataView(data);
    
      var colors = {
        '1': ['#808080', '#C71585', '#FFC0CB', 'Blue'],
        '2': ['Yellow', 'Pink', '#808080', 'Green']
      };
    
      var viewColumns = [];
      for (var col = 0; col < data.getNumberOfColumns(); col++) {
        addColumn(col);
      }
      function addColumn(col) {
        viewColumns.push(col);
        if (col > 0) {
          viewColumns.push({
            type: 'string',
            role: 'style',
            calc: function (dt, row) {
              var style = null;
              if ((row > 0) && (row < dt.getNumberOfRows() - 1)) {
                style = 'fill-color: ' + colors[dt.getFormattedValue(row, 0)][col - 1] + ';';
                if ((col > 1) && (col < dt.getNumberOfColumns() - 2)) {
                  style += ' stroke-color: #99ebff;';
                }
              }
              return style;
            }
          });
        }
      }
      dataView.setColumns(viewColumns);
    
      chart.draw(dataView, options);
    });
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="chart_div"></div>

    【讨论】:

    • 你是天才..你已经连续救了我两次 :)
    猜你喜欢
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    相关资源
    最近更新 更多