首页 文章

系列在HighCharts中不起作用

提问于
浏览
0

所以我在我的jQuery脚本中的函数中创建一个highcharts条形图,它工作正常,直到我尝试为条形图的每个条形图合并不同的颜色 . 我的代码基本如下

function BarChart(title, gType, list, numbers){
    var data = [];
    var allData = [];
    var series = [];
    var len = numbers.length;
    var colors = ['#7cb5ec', '#434348', '#90ed7d', '#f7a35c', '#8085e9', '#f15c80', '#e4d354', '#8085e8', '#8d4653', '#91e8e1'];
    for(i=0; i<len; i++){
        data.push({
            y: numbers[i],
            color:colors[i]
        });
        allData.push(data[i]);
    }
    for(i=0; i<len; i++){
        series.push({
            name: list[i],
            data: allData[i]
        });
    }

然后我继续创建图表和系列,我简单地说

series: series

但是没有栏目,只有传奇, Headers ,yAxis Headers 和xAxis Headers . 如果你可以帮助我做得很好,希望我的问题很清楚!谢谢!

附:

当我刚刚放

series:[{
data: data
}]

它有效,但是所有的传说都是系列1而我不想要它,我希望它实际上显示每个数据的名称及其相应的颜色,再次感谢!

2 回答

  • 0

    如果您仍在查看图例中的“系列1”问题 . 我发现了一种有趣的方法,让每个点都是它自己的系列,并且仍然在x轴上正确分组 . 它通过滥用条形堆叠来工作:

    plotOptions: {
      series: {
        stacking: 'normal'
      }
    },
    

    并在每个数据点上设置增量x值:

    data.forEach(function(val, i) {
        seriesData.push({
          name: categories[i],
          color: colors[(i % colors.length)],
          data: [{
            x: i,
            y: val
          }]
        });
      });
    

    这是一个从我从highcharts docs派生的例子构建的工作小提琴:

    http://jsfiddle.net/89efeqhs/

  • 0

    我解决了自己的问题,但仅仅是为了引用遇到这个问题的其他人,它的评价很简单 . 写下这段代码,

    plotOptions:{
    series:{
        colorByPoint: true
    }}
    

    而highcharts将分别为每个条/列/线着色 .

    这里的参考是highcharts页面向我展示了这个:http://api.highcharts.com/highcharts#plotOptions.bar

相关问题