2009-03-24 6 views
8

Estoy usando dojo y, por alguna razón, la leyenda de mi gráfico muestra x en lugar de los colores.¿Por qué la leyenda en mi tabla de gráficos Dojo no muestra los colores?

Aquí está mi código:

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

Como ya he dicho La tabla muestra perfectamente, pero, la leyenda no tiene ningún color en él.

+0

Pensé que era una cara triste al principio, pero no, usted tiene a); colgando de su bloque de código. – CiscoIPPhone

+0

javascript fijo declaración de función faltante. –

+0

hola, ¿funciona como en Google Finance con las funciones de zoom y panorámica, etc.? – bouncingHippo

Respuesta

10

Descubierto el problema, la leyenda tiene que declararse después de que se represente el gráfico.

Muchas gracias a la gente de #dojo por haberme señalado en más ejemplos que me ayudaron a darme cuenta de esto.

+0

He leído esta Q a través de RSS, fui a la respuesta que necesita para intercambiar 2 líneas, y descubrió que ya lo descubrió. :-) En general, #dojo y el foro de dojo son lugares adecuados para hacer preguntas específicas de dojo. SO es bueno para preguntas genéricas. –

+0

Sí, ttrenka y yo pasamos unos minutos mirándolo antes de darme cuenta de que los había equivocado. Gracias. –

+0

Solo para aclarar, cuando diga "la leyenda tiene que ser declarada después de que se represente la tabla", está diciendo, llame a chart1.render(); y luego crea la leyenda con algo así como: nueva leyenda ({chart: chart1}, "legend"); –

Cuestiones relacionadas