2016-05-24 4 views
2

Я работаю с развернутой гистограммой, когда все данные равны нулю. YAxis посередине является прямой линией, когда длина данных меньше или равна 4, когда длина данных больше четырех, yAxis становится пунктирной линией. Если я добавлю «стекирование»: обычный для серии, чтобы сделать гистограмму сложной гистограммой, yAxis всегда является прямой линией. См скрипкуhighcharts minPointLength не работает для нераспакованной гистограммы

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 прямой линией, независимо от того, что это сложная диаграмма или нераспакованная диаграмма. Есть ли способ сделать это? Спасибо

ответ

2

Основная проблема заключается в том, что пробелы вызваны пустым баром. Кажется, что Highcharts пытается показать строки значений 0, хотя они должны быть невидимыми.

Попробуйте установить сюжетную группу, чтобы нарисовать сплошную линию вдоль основания оси у:

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

ли это поможет решить проблему?

+1

Это может устранить пробелы, но при этом на высоких диаграммах не будет отображаться серия при наличии данных. –

+0

Вы правы: я получаю ошибку типа '(d.plotLines || []). concat не является функцией'. Странно! Позвольте мне посмотреть, что я могу сделать. –

+0

Ах! Я вижу! Для гистограмм мне нужны 'plotBands', а не' plotLines'. Я уточню свой ответ. –

Смежные вопросы