Белые промежутки на гистограмме с накоплением

Я пытаюсь создать столбчатую диаграмму с накоплением, используя плагин построения диаграмм jQuery, Flot.

Данные поступают для обеих серий в формате json как: [{"label": "Uncategorized", "data": [[1309374000000, "3448876"], [1309377600000, "3352757"] ...

Похоже, это та же проблема, что и здесь, но ответа не было. http://groups.google.com/group/flot-graphs/browse_thread/thread/c6445ff7dce59ea0/e996979c40bc3f6b?show_docid=e996979c40bc3f6b

Кто-нибудь видел эту ошибку или знает, где мне искать?

Все, что выходит за рамки самых простых примеров стекирования, кажется, имеет серьезные проблемы.

Я безуспешно пытался повернуть серию вспять. Все данные отсортированы по дате, а даты соответствуют сериям.

http://rpbailey.net/flotError.PNG

edit: мои параметры флота ... создаются две диаграммы, глядя на вторую (нижнюю).

                //get the date format
                strTimeFormat = "%y/%m/%d";
                if(strOb == 'Hour'){ strTimeFormat = "%y/%m/%d %H"; arrMinTick = [1, 'hour']; intBar = 1000000}
                if(strOb == 'Day'){ strTimeFormat = "%y/%m/%d"; arrMinTick = [1, 'day']; intBar =100000000}
                if(strOb == 'Month' | strOb == 'Quarter'){ strTimeFormat = "%y/%m"; arrMinTick = [1, 'month'];intBar = 3000000000}

                objOptions = {
                    colors:[ '#dddddd','#00ff00','#ffff00','#ff0000']
                    ,series:{points:{show:true},lines:{show:true},stack:0}
                    ,xaxis: { mode: "time", timeformat: strTimeFormat, minTickSize: arrMinTick }
                }           

                objOptions2 = {
                    series:{bars:{show:true, barWidth: intBar}, stack:-1000000}
                    ,xaxis: { mode: "time", timeformat: strTimeFormat }
                }   

                if(mode == 'percentage'){
                    objYaxes = {    yaxis:{
                         alignTicksWithAxis: 1
                        ,position: 'right'
                        ,tickFormatter: function(label, series){ return label +"%"; }
                    }};
                    //add on th yaxes options.
                    objOptions = jQuery.extend(objOptions, objYaxes);
                    objOptions2 = jQuery.extend(objOptions2, objYaxes);
                    console.log(objOptions);
                }

                 //top chart    
                jQuery.getJSON('includes/webRepFunctions.php', {chart:'risk',start:strStart,stop:strStop,ob:strOb,metric:mode}, function(data) {
                        jQuery.plot(jQuery("#flot1"),data,objOptions);                      
                    });

                 //bottom chart 
                jQuery.getJSON('includes/webRepFunctions.php', {chart:'cat',start:strStart,stop:strStop,ob:strOb,metric:mode}, function(data) {
                        jQuery.plot(jQuery("#flot2"),data,objOptions2);                     
                    });

                }

редактировать 2: еще несколько образцов данных ...

[{"label":"Uncategorized","data":[[1309374000000,"3448876"],[1309377600000,"3352757"],[1309381200000,"2897092"],[1309384800000,"2747047"],[1309388400000,"2693610"],[1309392000000,"2511211"],......[1310097600000,"1404290"]],"yaxis":1},{"label":"Categorized","data":[[1309374000000,"1371941"],[1309377600000,"1273494"],[1309381200000,"1505119"],[1309384800000,"1463382"],[1309388400000,"1316429"],[1309392000000,"1201810"],......[1310097600000,"611780"]],"yaxis":1}]


person RyanB    schedule 08.07.2011    source источник
comment
Нам также нужно увидеть некоторый исходный код для параметров, которые вы установили для Flot.   -  person Zéychin    schedule 08.07.2011
comment
Можно ли получить образец данных? Сложенные графики могут иметь некоторые проблемы с определенными комбинациями серий.   -  person Zéychin    schedule 08.07.2011


Ответы (2)


Обе серии содержат одинаковое количество точек данных? Я не могу сказать по этому поводу, так как вы отключили некоторый объем данных. Это кажется надоедливым вопросом, но эти графики ведут себя странно, если у вас не одинаковое количество [x,y] пар в каждой серии. Если он не определен, используйте null вместо [x,y]. Я думаю о том, в чем еще может быть проблема, кроме очень неработающего плагина, потому что я раньше рисовал нечто подобное и имел несколько проблем, но у меня больше нет доступа к этому коду.

Попробуйте удалить objOptions2 = jQuery.extend(objOptions2, objYaxes); из своего кода. Опять же, этот плагин не самый лучший и имеет проблемы с некоторыми свойствами Flot.

Также попробуйте удалить barWidth: intBar из objOptions2.

Попробуйте удалить их по отдельности.

Помимо этого, попробуйте разместить рассматриваемую диаграмму на странице отдельно, без других HTML / CSS / Javascript, за исключением того, что имеет значение.

person Zéychin    schedule 08.07.2011

У меня была такая же проблема, но была ссылка как на jquery.flot.stack.js, так и на jquery.flot.stack.min.js

Как только я удалил min js ref, проблема с пробелами исчезла ...

person woody    schedule 08.10.2011
comment
Вы правы, убедитесь, что вам нужен jquery.float.stack один раз - person Eldar; 09.12.2014