2009-03-24 12 views
8

Ich verwende Dojo-Charting und aus irgendeinem Grund zeigt die Legende für mein Diagramm X statt der Farben.Warum zeigt die Legende in meinem Dojo-Diagramm keine Farben?

Hier ist mein Code:

dojo.require("dojox.charting.Chart2D"); 
dojo.require("dojox.charting.themes.PlotKit.blue"); 
dojo.require("dojox.charting.widget.Legend"); 
dojo.require("dojox.layout.FloatingPane"); 
dojo.require("dojox.charting.themes.MiamiNice"); 
dojo.require("dojo.colors"); 
makeCharts = function(){ 
var chart1 = new dojox.charting.Chart2D("simplechart"); 

chart1.addPlot("default", {type: "StackedColumns", markers: true, tension:3, shadows: {dx: 2, dy: 2, dw: 2}}); 
chart1.addAxis("x",{labels: [{value: 1 , text: '18-Mar'}, {value: 2 , text: '19-Mar'}, {value: 3 , text: '20-Mar'}, {value: 4 , text: '21-Mar'}, {value: 5 , text: '22-Mar'}, {value: 6 , text: '23-Mar'}]}); 
chart1.addAxis("y", {vertical:true}); 

chart1.addSeries("Four", [196,209,77,218,48,243]); 

chart1.addSeries("One", [266,158,131,228,217,262]); 

chart1.addSeries("Three", [296,214,267,80,40,225]); 

chart1.addSeries("Two", [207,264,115,227,193,27]); 

chart1.setTheme(dojox.charting.themes.MiamiNice); 
var legend = new dojox.charting.widget.Legend({chart: chart1, horizontal: true}, "legend"); 

chart1.render(); 
} 

dojo.addOnLoad(makeCharts); 

Wie ich das Diagramm die Displays perfekt aber, die Legende hat keine Farben auf sie.

+0

Ich dachte, das war zuerst ein trauriges Gesicht, aber nein - du hast ein); aus Ihrem Codeblock heraushängen. – CiscoIPPhone

+0

behoben JavaScript fehlende Funktionsdeklaration. –

+0

hi, funktioniert das wie in Google Finanzen mit den Zoom- und Schwenkfunktionen und etc? – bouncingHippo

Antwort

10

Nachdem das Problem gefunden wurde, muss die Legende deklariert werden, nachdem das Diagramm gerendert wurde.

Vielen Dank an die Leute von #dojo für ihre Hinweise auf weitere Beispiele, die mir geholfen haben, dies zu bemerken.

+0

Ich las dieses Q über RSS, ging zu beantworten, dass Sie tauschen müssen 2 Zeilen, und festgestellt, dass Sie es bereits herausgefunden haben. :-) Im Allgemeinen sind #dojo und das Dojo-Forum richtige Orte, um Dojo-spezifische Fragen zu stellen. SO ist gut für generische Fragen. –

+0

Yeah ttrenka und ich habe ein paar Minuten damit verbracht, es zu betrachten, bevor ich bemerkte, dass ich sie falsch herum gesehen hatte. Dank. –

+0

Nur um klar zu stellen, wenn Sie sagen "die Legende muss deklariert werden, nachdem das Diagramm gerendert wird" Sie sagen, rufen Sie chart1.render(); und dann erstellen Sie die Legende mit etwas wie: new Legend ({chart: chart1}, "legende"); –

Verwandte Themen