highcharts minPointLength不适用于未堆叠条形图

时间:2016-05-24 09:53:36

标签: javascript jquery css charts highcharts

当数据全为零时,我正在使用未堆叠的条形图。当数据长度小于或等于4时,中间的yAxis是直线,当数据长度大于4时,yAxis变为虚线。如果我添加'堆叠':系列的法线以使条形图成为堆积条形图,yAxis始终是一条直线。看小提琴

http://jsfiddle.net/junkainiu/u6sgyxL6/5/

HTML

<script src="http://code.highcharts.com/highcharts.js"></script>

<div id="container" style="height: 400px"></div>

JS

$(function () { $('#container').highcharts({ chart: { type: 'bar', }, xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] }, series: [{ data: [0,0,0,0], stacking: 'normal' }] }); });

http://jsfiddle.net/junkainiu/bz22h3eb/7/

HTML

<script src="http://code.highcharts.com/highcharts.js"></script>

<div id="container" style="height: 400px"></div>

JS

$(function () { $('#container').highcharts({ chart: { type: 'bar', }, xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] }, series: [{ data: [0,0,0,0,0], }] }); });

看到差异。在highcharts中,默认的minPointLength为零,但它似乎不适用于未堆叠的条形图。所以我想让yAxis成为一条直线,无论它是叠加图表还是未堆叠图表。有没有办法做到这一点?谢谢

1 个答案:

答案 0 :(得分:2)

这里的关键问题是间隙是由空条引起的。似乎Highcharts试图显示0值条,即使它们应该是不可见的。

尝试设置绘图带以沿y轴底部绘制实线:

yAxis: {
    plotBands: {
        from: 0, to: 0, borderWidth: 1, borderColor: '#CCCCCC', zIndex: 10
    }
},

您可以将波段设置为0到0并设置边框宽度,使其有效地成为一条线。 zIndex属性将确保它保持在间隙之上。

这将删除轴线上的间隙(请参阅小提琴的更新版本:http://jsfiddle.net/brightmatrix/bz22h3eb/11/)。

  

注意:属性plotLines将达到相同的效果,但是,一旦开始为条形图定义数据,就会导致类型错误((d.plotLines || []).concat is not a function)。似乎plotLines用于线条和样条图表!

以下是已编辑图表的屏幕截图:

enter image description here

这有助于解决您的问题吗?