当数据全为零时,我正在使用未堆叠的条形图。当数据长度小于或等于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成为一条直线,无论它是叠加图表还是未堆叠图表。有没有办法做到这一点?谢谢
答案 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
用于线条和样条图表!
以下是已编辑图表的屏幕截图:
这有助于解决您的问题吗?