Я без успіху намагався побудувати просту лінійну діаграму в DOJO за допомогою даних jSON і дуже вдячний за будь-яку допомогу.
У мене є такий фрагмент даних, що повертаються:
[{"id":"24","Entry":"2012-02-10","Symbol":"Various","Type":"Speculativ","Call1":"0","Call2":"0","Put1":"0","Put2":"0","Cost":"0.00","Qty":"0","PnL":"383","R":"0.00","Risk":"6691"},
{"id":"23","Entry":"2012-02-01","Symbol":"VariousSp","Type":"Vertical","Call1":"0","Call2":"0","Put1":"0","Put2":"0","Cost":"0.00","Qty":"0","PnL":"341","R":"0.00","Risk":"19160"}]
Я намагався побудувати графік прямо з сховища даних, будуючи масив, все безрезультатно. Я дуже новачок у Доджо, тому я впевнений, що роблю просту помилку -
Мій код (як він існує зараз) такий:
var PnLStore;
var cumPnL = [];
require([
"dojox/charting/Chart",
"dojo/store/JsonRest",
"dojo/store/Memory",
"dojo/store/Cache",
"dojox/charting/StoreSeries",
"dojox/charting/plot2d/Lines",
"dojox/charting/axis2d/Default",
"dojox/charting/themes/Dollar",
"dojox/charting/plot2d/Markers",
"dojo/domReady!"],
function( Chart, JsonRest, Memory, Cache, StoreSeries, Lines) {
PnLStore = Cache(JsonRest({target:"pullTradesClosed.php"}), Memory());
var chart = new Chart("chartDiv");
chart.addPlot("default", {
type: "Lines",
markers: true
});
chart.addAxis("x");
chart.addAxis("y", { vertical: true, fixLower: "major", fixUpper: "major" });
PnLStore.query({id:"id"}).forEach(
function(trade) {
cumPnL.push (Number(trade.PnL));
});
chart.addSeries("PnL", cumPnL, {stroke:"green"});
chart.render();
});
Хоча це може бути не очевидно, я намагаюся побудувати ідентифікатор проти PnL.
Відповіді:
0 для відповіді № 1Якщо ви хочете прив’язати діаграму до сховища даних, як це робите, найкраще скористатися магазинами:
chart.addSeries("y", new StoreSeries(store, { query: {} }, "PnL"));
побачити: http://dojotoolkit.org/documentation/tutorials/1.7/charting_advanced/
на прикладі
Ви також можете використовувати набори даних:
addSeries ("PnL", новий dojox.charting.DataSeries (магазин, {запит: {}}, "PnL")).
Побачити: Dojox графік програмно, використовуючи магазинні серії для пов'язаного питання