javascript - Multi axes flot chart with orderd stacked bars, not stacking neither adjusting bar position -


i need following chart, multiseries multiaxes , need bars stacked , others not. paste code , here demo http://jsfiddle.net/willem/aab3e/17/

this first axis data (lines not stacked):

var data1 = [ [1375302600000, 33], [1375300800000, 26] ]; var data2 = [ [1375302600000, 0], [1375300800000, 12] ]; 

these bars (stacked user , date(first value)):

var user1_estado1 = [ [1375302600000, 20], [1375300800000, 40] ]; var user1_estado2 = [ [1375302600000, 10], [1375300800000, 90] ]; var user1_estado3 = [ [1375302600000, 30], [1375300800000, 70] ];  var user2_estado1 = [ [1375302600000, 20], [1375300800000, 40] ]; var user2_estado2 = [ [1375302600000, 10], [1375300800000, 90] ]; var user2_estado3 = [ [1375302600000, 30], [1375300800000, 70] ]; 

i set dataset options series; data1 , data2 no bars , stack false; others bars show: true , order set because want them solape user , datetime.

var dataset = [{     label: "answer",     data: data1,     bars: {         show: false     },     stack: false,     xaxis: 2 }, {     label: "not answer",     data: data2,     bars: {         show: false     },     stack: false,     xaxis: 2 }, {     label: "user1_estado1",     data: user1_estado1,     bars: {         show: true,         order:1     },     xaxis: 1,     yaxis: 2, }, {     label: "user1_estado2",     data: user1_estado2,     bars: {         show: true,         order:1     },     xaxis: 1,     yaxis: 2, }, {     label: "user1_estado3",     data: user1_estado3,     bars: {         show: true,         order:1     },     xaxis: 1,     yaxis: 2, }, {     label: "user2_estado1",     data: user2_estado1,     bars: {         show: true,         order:2     },     xaxis: 1,     yaxis: 2, }, {     label: "user2_estado2",     data: user2_estado2,     bars: {         show: true,         order:2     },     xaxis: 1,     yaxis: 2, }, {     label: "user2_estado3",     data: user2_estado3,     bars: {         show: true,         order:2     },     xaxis: 1,     yaxis: 2, }]; 

plot them, setting barwith (each half time) don´t know how adjust :(, , diferent axes, xaxes time need xaxe1 show each user.

var plot = $.plot( $("#placeholder"), dataset, { series: {     bars: {         barwidth: 60*30*1000,         align: "center",         fill: true,     },     //pointlabels:{show:true, stackedvalue: true}, }, grid: {     hoverable: true,     clickable: true,     tickcolor: "#f9f9f9",     borderwidth: 2,     mouseactiveradius: 10 }, xaxes: [{     show: true,     mode: "time",     timeformat: "%h:%m",     ticksize: [0.5, "hour"],     axislabel: "usuario",     axislabelfontsizepixels: 3,     axislabelpadding: 5 }, {     show: true,     mode: "time",     timeformat: "%h:%m",     ticksize: [0.5, "hour"],     axislabel: "usuarios ocupados",     axislabelfontsizepixels: 3,     axislabelpadding: 5 }], yaxes: {     color: "black",     axislabel: "usuarios ocupados",     axislabelusecanvas: true,     axislabelfontsizepixels: 8,     axislabelfontfamily: 'verdana, arial',     axislabelpadding: 5,     tickdecimals: 0 } }); 

here add interactive graph showing tooltips.

var previouspoint = null, previouslabel = null; $("#placeholder").bind("plothover", function (event, pos, item) { if (item) {     if ((previouslabel != item.series.label) || (previouspoint != item.dataindex)) {         previouspoint = item.dataindex;         previouslabel = item.series.label;         $("#tooltip").remove();          var x = new date(item.datapoint[0]);         var y = item.datapoint[1];         var color = item.series.color;          showtooltip(item.pagex, item.pagey, color,             "<strong>" + item.series.label + "</strong><br>" + (x.getmonth() + 1) + "/"     + x.getdate() +             " : <strong>" + y + "</strong> llamadas");     } } else {     $("#tooltip").remove();     previouspoint = null; } });  function showtooltip(x, y, color, contents) { $('<div id="tooltip">' + contents + '</div>').css({     position: 'absolute',     display: 'none',     top: y - 40,     left: x - 30,     border: '2px solid ' + color,     padding: '3px',         'font-size': '9px',         'border-radius': '5px',         'background-color': '#fff',         'font-family': 'verdana, arial, helvetica, tahoma, sans-serif',     opacity: 0.9 }).appendto("body").fadein(200); } 

my problem align bars per user , time (better being stacked) , not stack 2 lines. show in axis1 ticks user (not time).

you can see here http://jsfiddle.net/willem/aab3e/17/

please need driving :).

thank much!

to prevent lines stacking, rid of options don't need:

var dataset = [{     label: "answer",     data: data1,     xaxis: 2 }, {     label: "not answer",     data: data2,     xaxis: 2 }, ... 

to honest i'm not entirely sure why 'false' caused them stack; seems bug, in case removing option solves problem, since default not stack.

i'm not clear on mean 'align bars per user , time'; can explain?


Comments

Popular posts from this blog

c++ - CryptStringToBinary API behavior -

java.util.scanner - How to read and add only numbers to array from a text file -

iphone - Three second countdown in cocos2d -