7

我想自定义我的柱形图 API 如下

1)当我单击图例时,与之关联的数据集应返回 null 并以禁用颜色显示图例。我的代码如下。

function drawVisualization() {
    // Create and populate the data table.
    var chart_div       =   document.getElementById('visualization2');

    var data2           =   google.visualization.arrayToDataTable([["Sections","Client Scored",{ role: "style" },"Client Confidence",{ role: "style" },"Average Mark",{ role: "style" },"Average Confidence",{ role: "style" }],["Set 1",90,"opacity: 1",95,"opacity: 0.5",78,"opacity: 1",69,"opacity: 0.5"],["Set 2",65,"opacity: 1",73,"opacity: 0.5",99,"opacity: 1",99,"opacity: 0.5"]]);  
    var options = {
      title:"Understanding",
      width:'100%', height:600,seriesType: "bars"
        ,series:{1: {type: "line",pointSize: 10,lineWidth :0},3: {type: "line",pointSize: 10,lineWidth :0}}
        ,colors: ['#fafe14','#fafe14','#05afed','#05afed']
      ,vAxis: {title: "%Score",format: '##', minValue: '1', maxValue: '8'},      
      hAxis: {title: "",slantedText: true,slantedTextAngle:60, maxTextLines: 5, maxAlternation: 10 },
      chartArea: {height: '60%',top:10}
      };    
    var chart           =   new google.visualization.ColumnChart(chart_div);

    chart.draw(data2, options);

  }

为此,我尝试了hideColumns功能并且它有效,但问题是图例也会随着数据集淡出,如果我删除第二列,第三列将变为第二列,4 将变为 3,5 将变为 4。

2)我的第二个问题是第 1 列和第 3 列是线宽为零的行,如下所示。

在此处输入图像描述

有没有办法将它移动到第一个栏的正中间,如下所示 在此处输入图像描述

4

1 回答 1

1

如果我正确理解了您问题的第一部分,那么您正在尝试隐藏一列而不将其从 DataTable 中删除。

要使 DataTable 中的列不显示在从中绘制的图表中,您可以将列的角色更改为不显示在图表上的内容。

例如,列的 annotationText 角色适用于它之前的 annotation 列,但如果它之前没有 annotation 列,则 annotationText 列将被忽略。

所以如果你想隐藏第 2 列,下面的代码片段会这样做:

data_table.setColumnProperty(2,'role','annotationText');

如果您想再次显示该列,您只需将角色更改回数据

data_table.setColumnProperty(2,'role','data');
于 2016-08-31T19:13:18.760 回答