Как установить цветовую диаграмму jqplot на панель?

Я пытаюсь установить цвета своих баров гистограммы jqplot. Там всегда будет шесть баров, сгруппированных в комплекты из 2 баров. Ниже приведен пример данных:

 line1 = [6000, 5000, 5500];
 line2 = [16000, 10000, 14000];

Я использовал следующее:

 seriesColors: ["#F3CBBF", "#BFDDE5", "#CF3501", "#027997", "#CF3501", "#027997"],

Но jqplot поочередно заменяет первые 2 бара, вместо того, чтобы использовать все объявленные цвета. Вероятно, это связано с тем, что только 2 серии присутствуют, по одному на набор данных.

Есть ли способ явно задать цвета столбцов?

Ответ 1

Я делаю это, используя метод varyBarColor, чтобы вы могли перечислять разные цвета для баров в простом массиве, как вы уже делали, но если есть только одна серия, она будет использовать эти цвета для каждого бара. Вот пример моего кода:

plot1 = $.jqplot('chart1', [s1], {
        title: 'Example Income Graph',
        seriesDefaults:{
            renderer:$.jqplot.BarRenderer,
            rendererOptions:{ varyBarColor : true },
            pointLabels: { show : true }
        },
        axes: {
            xaxis: {
                renderer: $.jqplot.CategoryAxisRenderer,
                label:'Net Growth (%)',
                ticks: ticks
            },
            yaxis:{
              label:'Income (£)',
              tickOptions:{ formatString:'%d'},
              autoscale:true,
              min:0, 
              max:10000
            }
        },
        seriesColors: [ "#eee", "#ccc", "#999"],
        highlighter: { show: false }
    });

На этом графике у меня была одна серия с 3 барами, каждая из которых имела разные цвета.

Ответ 2

Это довольно старый, но все еще не имеет правильного ответа, и мне потребовалось некоторое время, чтобы понять это, так что вот оно.

Вам нужны две вещи: Задайте переменнуюBarColor и массив серий, который содержит цвета серии для каждой серии, переданные на том же уровне, что и seriesDefaults, например:

plot1 = $.jqplot('chart1', [s1, s2], {
            title: 'Example',
            seriesDefaults:{
                renderer:$.jqplot.BarRenderer,
                rendererOptions:{ varyBarColor : true },
                pointLabels: { show : true }
            },
            series: [{seriesColors: ["#F3CBBF", "#BFDDE5", "#CF3501"]},
                     {seriesColors: ["#027997", "#CF3501", "#027997"]}]
            }

Ответ 3

попробуйте это

series:[{renderer:$.jqplot.BarRenderer , seriesColors: ["#F3CBBF", "#BFDDE5", #CF3501","#eee", "#ccc", "#999"] }]