سؤال

أحاول بجد الحصول على بعض المخططات الوظيفية مع دوجو ...

أريد إنشاء مخطط منطقة مكدسة مع 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}]
             };

أريد أن أضع int محور X في الأشهر كما رأينا في الكود. اتصل بالبيانات المحددة في 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") للاتصال ببياني المحددة.

الرجاء المساعدة! شكرا جزيلا.

هل كانت مفيدة؟

المحلول

من المستندات الرسمية باستخدام مصادر بيانات dojo.data مع المخططات:

dojox.charting.dataseries تستخدم للاتصال بمخازن dojo.data. يجب على المستخدم إنشائها وتمريرها بدلاً من صفيف البيانات في CALL 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top