AddSeries関数のパラメータ
-
25-09-2019 - |
質問
私は道場...
と、いくつかの機能のグラフを得るために努力します私は3行と積み上げ面グラフを作成したいです。あなたはJSONデータで見るように「BAS」、「MOY」と「オー」のために。
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}]
};
私はそれがコードに見られるように、xは数ヶ月、軸int型載せていきたいと思います。すべての行を作成するために、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")
の代わりに配置する必要がありWathのを知りません。
助けてください!ありがとうたくさんます。
解決
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