Параметры AddSeries - PullRequest
       40

Параметры AddSeries

0 голосов
/ 28 сентября 2010

Я очень стараюсь получить функциональные диаграммы с помощью додзё ...

Я хочу создать составную диаграмму с 3 линиями. Для "bas", "moy" и "haut", как вы видите в данных JSON.

    var jStore = {"identifier":"mois",
                "items":[{"mois":1,  "bas":98,   "moy":122.5,   "haut":147},
                         {"mois":2,  "bas":91,   "moy":113.75,  "haut":136.5},
                         {"mois":3,  "bas":91,   "moy":113.75,  "haut":136.5},
                         {"mois":4,  "bas":84,   "moy":105,     "haut":126},
                         {"mois":5,  "bas":77,   "moy":96.25,   "haut":115.5},
                         {"mois":6,  "bas":63,   "moy":78.75,   "haut":94.5},
                         {"mois":7,  "bas":49,   "moy":61.25,   "haut":73.5},
                         {"mois":8,  "bas":42,   "moy":52.5,    "haut":63},
                         {"mois":9,  "bas":49,   "moy":61.25,   "haut":73.5},
                         {"mois":10, "bas":70,   "moy":87.5,    "haut":105},
                         {"mois":11, "bas":77,   "moy":96.25,   "haut":115.5},
                         {"mois":12, "bas":84,   "moy":105,     "haut":126}]
             };

Я хочу указать в оси х месяцы, как показано в коде. Вызовите конкретные данные в JSON, чтобы создать каждую строку.

dojo.addOnLoad(function() {
                var chart1 = new dojox.charting.Chart2D('chart1');
                chart1.addPlot('default', {
                        type: 'StackedAreas',
                        markers: true,
                        tension: 'S',
                        lines: true,
                        areas: true,
                        labelOffset: -30,
                        shadows: {
                            dx:2, dy:2, dw:2
                        }
                     });
                chart1.addAxis('x', {max:12, 
                   labels:[
                      {value: 0, text: ""},
                      {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"},
                      {value: 8, text: "Aug"},
                      {value: 9, text: "Sept"},
                      {value: 10, text: "Oct"},
                      {value: 11, text: "Nov"},
                      {value: 12, text: "Dec"}
               ]});
                chart1.addAxis('y', { vertical: true, max:200, includeZero: true });
                chart1.addSeries('Basse', (jStore, {query: {bas: "*"}}, "bas"),{ stroke: 'red', fill: 'pink' });
                chart1.addSeries('Moyenne',(jStore, {query: {moy: "*"}}, "moy"), { stroke: 'green', fill: 'lightgreen' });
                chart1.addSeries('Haute',(jStore, {query: {haut: "*"}}, "haut"), { stroke: 'blue', fill: 'lightblue' });
                chart1.render();
                var anim1a = new dojox.charting.action2d.Magnify(chart1, "default");
                var anim1b = new dojox.charting.action2d.Tooltip(chart1, "default");
                var legend1 = new dojox.charting.widget.Legend({
                    chart:chart1
                },"legend1");
                chart1.render();
            });

Это не работает, я не знаю, что мне нужно поставить вместо (jStore, {query: {haut: "*"}}, "haut") для вызова моих конкретных данных.

пожалуйста, помогите! Большое спасибо.

1 Ответ

1 голос
/ 30 сентября 2010

Из официальных документов Использование источников данных dojo.data с диаграммами :

dojox.charting.DataSeries используется для подключения к хранилищам dojo.data.Пользователь должен создать его и передать вместо массива данных в вызове chart.addSeries ().

Пример использования можно найти в dojox/charting/tests/test_DataSeries.html.

Другой отсутствующий фрагмент вВаш пример - объект магазина.Каким-то образом вы пытаетесь передать структуру JSON, в которой есть данные, но нет необходимых методов.Сначала вы должны создать хранилище данных из ваших данных.Я понятия не имею, какое хранилище данных вы хотите использовать, но если вам нужно только показать свою структуру данных, вы можете использовать dojo.data.ItemFileReadStore:

dojo.require("dojo.data.ItemFileReadStore");

var jStore = ...; // not really a store, but your JSON-like object
var realStore = new dojo.data.ItemFileReadStore({data: jStore});
...
chart1.addSeries(
  'Basse',
  new dojox.charting.DataSeries(realStore, {query: {bas: "*"}}, "bas"),
  {stroke: 'red', fill: 'pink'}
);

Воспользуйтесь ссылкой выше, чтобы узнать о dojox.charting.DataSeries.Читайте все о dojo.data в официальной документации: http://docs.dojocampus.org/dojo/data

...