Mam majsterkowanie z wieloma seriami wykresu w dimplejs i utknąłem z logiką wieloosiową.Multi-series w dimplejs
z następującymi danymi:
var data = [
{"Month":"01/2013", "Revenue":2000, "Profit":2000, "Units":4},
{"Month":"02/2013", "Revenue":3201, "Profit":2000, "Units":3},
{"Month":"03/2013", "Revenue":1940, "Profit":14000, "Units":5},
{"Month":"04/2013", "Revenue":2500, "Profit":3200, "Units":1},
{"Month":"05/2013", "Revenue":800, "Profit":1200, "Units":4}
]
próbuję dostać pokazano wykres, przez miesiące, mój dochód i mój zysk na tej samej osi y, a moje jednostki na wtórnym osi y.
Za pomocą poniższego kodu mógłbym wyświetlić serię 3. Ale seria Profit nie jest tak naprawdę na tej samej osi, co w Revenue, a całość wydaje się bardziej jak włamanie niż właściwe rozwiązanie.
var chart = new dimple.chart(svg, data);
chart.setBounds(60,20,680,330);
var x = chart.addCategoryAxis("x", "Month");
var y1 = chart.addMeasureAxis("y", "Revenue");
chart.addSeries("null", dimple.plot.line, [x,y1]);
var y2 = chart.addMeasureAxis("y", "Units");
chart.addSeries("null", dimple.plot.bar, [x,y2]);
var y3 = chart.addMeasureAxis("y", "Profit");
chart.addSeries("null", dimple.plot.line, [x,y3]);
Zgaduję, że moja logika może być nie tak z prawidłową zabawą z serią. Każda pomoc byłaby świetna.
Dzięki dużo, Xavier
Pełny kod:
var svg = dimple.newSvg("body", 800, 400);
var data = [
{"Month":"01/2013", "Revenue":2000, "Profit":2000, "Units":4},
{"Month":"02/2013", "Revenue":3201, "Profit":2000, "Units":3},
{"Month":"03/2013", "Revenue":1940, "Profit":14000, "Units":5},
{"Month":"04/2013", "Revenue":2500, "Profit":3200, "Units":1},
{"Month":"05/2013", "Revenue":800, "Profit":1200, "Units":4}
]
var chart = new dimple.chart(svg, data);
chart.setBounds(60,20,680,330);
var x = chart.addCategoryAxis("x", "Month");
var y1 = chart.addMeasureAxis("y", "Revenue");
chart.addSeries("null", dimple.plot.line, [x,y1]);
var y2 = chart.addMeasureAxis("y", "Units");
chart.addSeries("null", dimple.plot.bar, [x,y2]);
var y3 = chart.addMeasureAxis("y", "Profit");
chart.addSeries("null", dimple.plot.line, [x,y3]);
x.dateParseFormat = "%m/%Y";
x.addOrderRule("Date");
chart.draw();
dziękuję John! Twój hack ma sens z ograniczeniami, które odgadłem wczoraj podczas zabawy. Mamy nadzieję, że znajdziesz sposób, aby narysować dwie serie na jednej osi w pewnym punkcie lub "zsynchronizować" różne osie :) A dzięki Larsowi za tag dimple.js, nie miałem dość reputacji, aby to stworzyć. – xav
Czy kiedykolwiek wdrożyłeś to? Nie widzę, jak to zrobić w dokumentach ... – Dan
Nie, jeszcze nie. Tutaj jest zaimplementowana połowa oddziału https://github.com/PMSI-AlignAlytics/dimple/tree/composite-axes, która działa w niektórych przypadkach, ale jeszcze nie wszystkie. –