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
Post a Comment