具有动态数据列对齐关闭的highcharts列图

时间:2012-02-10 18:05:05

标签: highcharts

我希望这个快速的描述和形象能够与有类似问题并因此提出建议/解决方案的人敲响钟声。

我有一个列图,我正在动态添加数据(通过jQuery解析XML文件)。

由于某种原因,在添加数据之后,不同系列的对齐有点偏差。我通过可见/不可见切换其中一个系列(通过点击图例中的系列)来解决问题。

当我通过对数字进行硬编码来添加数据时,为了确保它能够正常工作,它可以很好地工作。

这是图像: enter image description here

黄色系列是添加到图表中的最后一个系列,红色和紫色系列在切换5系列之一的可见性后排成一行。

任何帮助将不胜感激!

更新数据信息:

  • 我有5个系列的数据和10个x轴类别
  • 我在解析XML文件时正在构建一个多维数据数组
  • 数组长度为5,其中每个索引包含一个长度为10的数组
  • 这是数组填充数据后的样子:

索引号:0值:0,0,0,0,0,0,0,0,0,0

索引号:1值:180,210,0,0,0,0,0,0,180,210

指数#:2价值:22,4,0,0,0,0,0,0,2,2,4

索引号:3值:0,0,0,0,0,0,0,0,0,0

索引号:4值:200,30,0,0,0,0,0,0,4,0

我使用以下JS代码将数据添加到图表中:

for (var c_ary_bs = 0; c_ary_bs < ary_bs_schedule_orig.length; c_ary_bs++) {
        chart.series[c_ary_bs].setData(ary_bs_schedule_orig[c_ary_bs]);
    }
希望这会有所帮助,谢谢!

更新2,更多信息

我已经对添加到阵列中的数据进行了硬编码,以帮助查明问题:

    chart.series[0].setData([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
    chart.series[1].setData([180, 210, 0, 0, 0, 0, 0, 0, 180, 210]);
    chart.series[2].setData([22, 4, 0, 0, 0, 0, 0, 0, 22, 4]);
    chart.series[3].setData([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
    chart.series[4].setData([200, 30, 0, 0, 0, 0, 0, 0, 4, 0]);
    alert('done')

当警报触发时,图表列正确对齐,点击“确定”以关闭警报后,会发生对齐问题,如上图所示。

1 个答案:

答案 0 :(得分:0)

我发现了一个不完美的修复:

- 将图表的marginLeft设置为70可以缓解未对齐的列的问题

- 由于某种原因,y轴标题文本显示在y轴刻度上,因此我使用以下内容使其可见:

 yAxis: {
        title: {
            x:-20,
            text: 'Schedule Days'
        }
    }

(注意x:-20)

奇怪的是,当我切换其中一个系列时(通过在图例中单击它),yAxis标题文本将恢复到应该的位置(由于上述修复,现在为20px)。

在我切换其中一个系列之后,完美修复会将yAxis文本放在原处,但至少这样,无论用户是否切换系列,它现在都可见。