Диаграмма Dojo: Как добавить метки из хранилища данных в мою Ось? - PullRequest
0 голосов
/ 24 февраля 2012

Я все еще новичок в додзё и javascript, так что это может быть тривиально.
Я создал диаграмму "dojox.charting.Chart2D".
Я получаю данные из хранилища данных (ItemFileReadStore) и могу успешно отобразить их в моем DataSeries. Я также могу создать свою ось x a y, но только содержать простые числа. Что мне нужно, это добавить к моей оси X текстовые значения из одного поля в моем магазине. Я обнаружил, что это можно сделать с помощью "labelFunc: function (n) {}", но я просто не могу заставить его читать данные из моего хранилища.

Данные моего магазина выглядят так:

{ identifier: "UniqueId"  , items: [
{"UniqueId":1, "VisitDate":"2012-02-21T00:00:00", "VisitsTotal":407, "Visits10":71, "Visits15":6},
{"UniqueId":2, "VisitDate":"2012-02-20T00:00:00", "VisitsTotal":508, "Visits10":80, "Visits15":10},
...  

Мой код такой:

var store = new dojo.data.ItemFileReadStore({ url: './../Data/MyJSONData.aspx' });
chart1 = new dojox.charting.Chart2D("simplechart1");  
chart1.addAxis("x", {fixUpper: "major",fixLower: "minor",title: 'Datum',
labelFunc: function (n) {
// HOW DO I GET THE VALUES 'VisitDate' FROM MY STORE ???
}});

chart1.addSeries('VisitsTotal',
new dojox.charting.DataSeries(store, { query: { Visits10: "*"} }, "Visits10"),
{ stroke: 'red', fill: 'pink' }
);

chart1.addSeries('Visits10',
new dojox.charting.DataSeries(store, { query: { Visits10: "*"} }, "Visits10"),
{ stroke: 'red', fill: 'pink' }
);
...

Я уже пробовал любую комбинацию, но мне действительно не хватает некоторых основ, о том, как читать из магазина, а также как установить мои собственные текстовые значения (метки) для моей оси X.

Заранее спасибо.

1 Ответ

1 голос
/ 24 февраля 2012

Добавьте (метки) к оси X.

chart1.addAxis("x", { labels: [{value: 1, text: "Jan"}, {value: 2, text: "Feb"},
                         {value: 3, text: "Mar"}, {value: 4, text: "Apr"},
                         {value: 5, text: "May"}, {value: 6, text: "Jun"},
                         {value: 7, text: "Jul"}]
    });

Или см. Мой jsfiddle.

Чтение данныхиз магазина

store.fetch( { query: {},  
               onItem: function(item) {
                  console.log(store.getValue( item, 'VisitDate' ) );
               }
});

Подробнее на Dojo Livedoc или stackoverflow

...