两列pointRange和xAxis.max之间的奇数Highcharts交互

时间:2013-07-08 16:28:37

标签: javascript highcharts

我有一个包含两个列系列的Highcharts图表,每个列都有一个数据点。红色系列由黄色系列背后(部分遮挡),如预期的那样。每个系列都有一个pointRange:红色列为3000,黄色列为10000。正如您在下面看到的那样,红色列实际上是3000宽,但是黄色列被绘制为10000,可能是6500. yellow column narrower than its pointRange

小提琴:http://jsfiddle.net/Bridgeland/aRHWw/

由于xAxis.max,黄色列可能太小,设置为9000.当我将此最大值更改为12000时,黄色列更正为10000宽,但红色列突然向右跳跃,从跨越0-如你所见,3000到3500-6500。

有没有办法让红色和黄色列都具有正确的宽度,并且还要让它们从0开始,即左对齐到Y轴?为什么Highcharts会这样做,我该如何控制呢?

red column has jumped to the right

$(function () {
    $('#container').highcharts({
        chart: { 
            alignTicks: false
        },
        title: {
            text: ""
        },
        yAxis: {
            min: 0,
            max: 1
        },
        xAxis: {
            min: 0,
            endOnTick: false,  
            max: 9000
        },
        legend: {
            enabled: false
        },
        credits: {
            enabled: false
        },
        plotOptions: {series: {grouping: false}},
        series: [

        {
            data: [
            1],
            type: "column",
            pointPadding: 0,
            groupPadding: 0,
            color: "red",
            pointRange: 3000,
            borderWidth: 0,
            shadow: false,
            pointPlacement: "between",
            zIndex: 0,
            minPointLength: 3 
        }, {
            data: [
            0.5],
            type: "column",
            pointPadding: 0,
            groupPadding: 0,
            color: "yellow",
            pointRange: 10000,
            borderWidth: 0,
            shadow: false,
            pointPlacement: "between",
            zIndex: 1,
            minPointLength: 3 
        }]
    })
})

1 个答案:

答案 0 :(得分:1)

据我了解,pointPlacement: 'between'正在“告诉”图表在其分隔刻度之间绘制列。因此,如果您将其设置为on,它将在“滴答”的“顶部”将其绘制为零。由于pointRangepointStart为3000,因此您最终将以1500为零,因此您必须将其填充到右侧,将{ data: [1], type: "column", pointPadding: 0, groupPadding: 0, color: "red", pointStart: 1500, pointRange: 3000, borderWidth: 0, shadow: false, pointPlacement: 'on', zIndex: 0, minPointLength: 3 } 设置为1500。

然后必须将“红色”系列定义为:

{{1}}