如何为每个栏设置jqplot条形图颜色?

时间:2010-11-10 12:26:13

标签: colors jqplot

我正在尝试设置jqplot条形图条的颜色。总会有六个条形图,分为两组条形图。以下是绘制数据的示例:

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

到目前为止我使用了以下内容:

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

但是jqplot每次在前两个条之间交替,而不是使用所有声明的颜色。这可能是因为它只确定存在2个系列,每组数据一个。

有没有办法明确设置条形颜色?

3 个答案:

答案 0 :(得分:31)

我使用varyBarColor method执行此操作,因此您可以在一个简单的数组中列出不同的颜色,就像您已经完成的那样,但如果只有一个系列,则会为每个条形使用这些颜色。以下是我的代码示例:

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个条形,它们各自都是不同颜色的灰色。

答案 1 :(得分:4)

这已经很老了,但仍然没有正确的答案,我花了一段时间才弄明白,所以就这样了。

你需要两件事: 设置varyBarColor和一个包含每个系列的系列颜色的系列数组,与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"]}]
            }

答案 2 :(得分:-1)

试试这个

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