0

我使用 Google Charts 编码了以下类型的甘特图,但我想为每个条形分配不同的颜色。现在就我而言,因为我为 spacer 分配了透明颜色,所以我不明白如何为每个剩余的条分配不同的颜色。

这可能归结为在不同的条形图中分配相同的系列不同的颜色。

有人可以帮我解决这个问题吗?

http://jsfiddle.net/bootkick/hp2yr/

 google.load('visualization', '1', {
    packages: ['corechart']
});
google.setOnLoadCallback(drawChart);

function drawChart() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Name');
    data.addColumn('timeofday', 'spacer');
    data.addColumn('timeofday', 'Runtume');
    data.addRows([
        ['PIPE', [5, 0, 0, 0],
            [7, 30, 0, 0]
        ],
        ['CNI', [6, 0, 0, 0],
            [12, 30, 0, 0]
        ],
        ['PEVC', [11, 0, 0, 0],
            [17, 30, 0, 0]
        ]
    ]);

    var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
    chart.draw(data, {
        isStacked: true,
        width: 900,
        height: data.getNumberOfRows() * 80,
        title: 'Host Runtimes',
        vAxis: {
            title: 'Content',
            titleTextStyle: {
                color: 'black'
            }
        },
        series: {
            0: {
                visibleInLegend: false,
                color: 'transparent'
            }
        }
    });

    /*chart.draw(data, {isStacked: true,

                      series: [
                               {color: 'blue', visibleInLegend: false},
                               {color: 'red', visibleInLegend: false}
                              ]
                             });*/
}

谢谢

4

1 回答 1

2

这是一种令人讨厌的做法。希望他们制作一个谷歌甘特图

google.load('visualization', '1', {
packages: ['corechart']
});
google.setOnLoadCallback(drawChart);

function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('timeofday', 'spacer');
data.addColumn('timeofday', 'Runtime');
data.addColumn('timeofday', 'Runtime');
data.addColumn('timeofday', 'Runtime');
data.addColumn('timeofday', 'Runtime');

data.addRow(['PIPE', [3, 0, 0],
    [4, 30, 0],
    [0, 0, 0],
             [0, 0, 0],
    [0, 0, 0]
]);
data.addRow(['CNI', [1, 0, 0],
    [0, 0, 0],
    [7, 30, 0],
             [0, 0, 0],
    [0, 0, 0]
]);
data.addRow(['PEVC', [7, 0, 0],
    [0, 0, 0],
    [0, 0, 0],
    [1, 0, 0],
    [0, 0, 0]
]);

data.addRow(['MA', [7, 0, 0],
    [0, 0, 0],
    [0, 0, 0],
             [0, 0, 0],
    [1, 0, 0]
]);

var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
chart.draw(data, {
    isStacked: true,
    width: 900,
    height: data.getNumberOfRows() * 60,
    title: 'Host Runtimes',
    vAxis: {
        title: 'Content',
        titleTextStyle: {
            color: 'black'
        }
    },
    series: {
        0: {
            visibleInLegend: false,
            color: 'transparent'
        },
        1: {
            visibleInLegend: false,
            color: 'red'
        },
        2: {
            visibleInLegend: false,
            color: 'green'
        },
        3: {
            visibleInLegend: false,
            color: 'blue'
        },
        4: {
            visibleInLegend: false,
            color: 'yellow'
        },
        5: {
            visibleInLegend: false,
            color: 'cyan'
        },
        6: {
            visibleInLegend: false,
            color: 'pink'
        },
        7: {
            visibleInLegend: false,
            color: 'silver'
        }
    }
});

}

在这里查看它的实际效果-:http: //jsfiddle.net/bootkick/hp2yr/9/

于 2013-03-27T14:51:32.940 回答