Highcharts columnrange从其他类别的数据中删除间距

时间:2016-02-09 09:51:02

标签: javascript highcharts

如何摆脱图片中所示的“隐形”间距?

我打算以倒置模式使用图表(作为甘特图),但这表明差距更明显。能够玩它:http://jsfiddle.net/j03ceom5/

我使用'xrange'类型,但它有同样的问题:https://jsfiddle.net/agxu6ffc/

enter image description here

- 插入一些代码片段以接受jsfiddle链接,尽管不一定需要理解这个问题 -

        chart: {
            renderTo: 'container',
            type: 'columnrange',
            inverted:false,
        },

1 个答案:

答案 0 :(得分:0)

您可以使用合理修改列重绘/加载图表事件的解决方法。

var justifyColumns = function (chart) {
    var categoriesWidth = chart.plotSizeX / (1 + chart.xAxis[0].max - chart.xAxis[0].min),
        distanceBetweenColumns = 0,
        each = Highcharts.each,
        sum, categories = chart.xAxis[0].categories,
        number;
    for (var i = 0; i < categories.length; i++) {
        sum = 0;
        each(chart.series, function (p, k) {
            if (p.visible) {
                each(p.data, function (ob, j) {
                    if (ob.category == categories[i]) {
                        sum++;
                    }
                });
            }
        });
        distanceBetweenColumns = categoriesWidth / (sum + 1);
        number = 1;
        each(chart.series, function (p, k) {
            if (p.visible) {
                each(p.data, function (ob, j) {
                    if (ob.category == categories[i]) {
                        ob.graphic.element.x.baseVal.value = i * categoriesWidth + distanceBetweenColumns * number - ob.pointWidth / 2;
                        number++;
                    }
                });
            }
        });
    }
};

http://jsfiddle.net/zmktekak/14/