2009-03-24 3 views
8

Sto utilizzando la creazione di grafici del dojo e per qualche motivo la legenda per il mio grafico mostra le x invece dei colori.Perché la legenda nella mia tabella dei grafici Dojo non mostra i colori?

Ecco il mio codice:

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); 

Come ho detto il display grafico perfettamente, ma, la leggenda non ha tutti i colori su di esso.

+0

All'inizio pensavo che fosse una faccia triste, ma no - avete un); uscire dal tuo blocco di codice. – CiscoIPPhone

+0

dichiarazione funzione mancante javascript. –

+0

ciao, funziona come in Google Finanza con le funzioni di zoom e panoramica e così via? – bouncingHippo

risposta

10

Rilevato il problema, la legenda deve essere dichiarata dopo il rendering del grafico.

Mille grazie alle persone di #dojo per avermi segnalato più esempi che mi hanno aiutato a notarlo.

+0

Ho letto questo Q via RSS, sono andato a rispondere che è necessario scambiare 2 righe e hai scoperto che lo hai già scoperto. :-) In generale #dojo e il forum del dojo sono i posti giusti per chiedere domande specifiche al dojo. SO è buono per le domande generiche. –

+0

Sì, ttrenka e ho passato alcuni minuti a guardarlo prima che mi accorgessi che li avevo presi nel modo sbagliato. Grazie. –

+0

Giusto per chiarire, quando si dice "la legenda deve essere dichiarata dopo il rendering del grafico" si sta dicendo, chiama chart1.render(); e quindi creare la legenda con qualcosa come: nuova legenda ({chart: chart1}, "legend"); –