如何在Highchart中在列和y轴之间留出1px的空间?

时间:2012-09-03 15:25:30

标签: javascript jquery css charts highcharts

我必须使用在colums和Y轴之间有1px空间的highcharts做柱形图,如何将我想要的图表中的1px空间添加到我做的图表中,这些是我做的代码: (对不起,我没有足够的声誉来添加图像,这就是为什么我没有发布的原因)

var data = [ 20, 29, 25, 29, 21, 17, 20, 19, 18]; 
createMeasuresGraph(data, "quintals-sugar-graph");
function createMeasuresGraph(data, container) {
    data[0] = { color: '#55B647', y: data[0] };
    data[data.length -2 ] = { color: '#F15B49', y: data[data.length -2 ] };
    var chart = new Highcharts.Chart({
        chart: {
            marginBottom: 1,
            marginLeft: 0,
            marginRight: 0,
            marginTop: 0,
            renderTo: container,
            type: 'column',
        },
        credits: {
            enabled: false
        },
        legend: {
            enabled: false
        },
        plotOptions: {
            column: {
                pointWidth: 5,
            },
            series: {
                borderWidth: .1,

            }
        },
        series: [{
            data: data,
            color: '#95D2F3',
            shadow: false,
        }],
        title: {
            text: ''
        },
        tooltip: {
            enabled: false
        },
        xAxis: {
            labels: {
                enabled: false
            },
            title: {
                enabled: false
            },
            lineColor: '#CBCBCB',
            tickWidth: 0
        },
        yAxis: {
            endOnTick: false,
            gridLineWidth: 0,
            labels: {
                enabled: false
            },
            startOnTick: false,
            minPadding: 0.5,
            title: {
                text: ""
            }
        }
    });
}

我也看到所有列之间的空格不一样,也许我使用了错误的aproch来获取空格,它最好是什么?

3 个答案:

答案 0 :(得分:13)

你想在每列之间留一个1px的空间吗?

我会根据图的大小/列数来计算列宽:

var colWidth = ($('#quintals-sugar-graph').width() / data.length) + 1;

然后将“borderWidth”设置为1px以提供空格:

    plotOptions: {
        column: {
            pointWidth: colWidth,
            borderWidth: 1
        },

    },

小提琴here

enter image description here

答案 1 :(得分:4)

你真的需要宽度恰好是1px吗?如果没有,以下内容也会在列之间留出最小的空间,并且更方便:

plotOptions: {
    column: {
        pointPadding: 0,
        groupPadding: 0
    }
}

答案 2 :(得分:2)

您可以这样做:

plotOptions: {
  column: {
    pointPadding: 0,
    groupPadding: 0,
    borderWidth: 1
  }
},