2009-03-24 2 views
8

Я использую диаграмму dojo, и по какой-то причине легенда для моей диаграммы показывает x вместо цветов.Почему легенда на моей диаграмме диаграмм Dojo не показывает цвета?

Вот мой код:

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

Как я уже говорил на диаграмме отображаются отлично, но, легенда не имеет цвета на нем.

+0

Я думал, что это было грустное лицо сначала, но нет - у вас есть a); зависания вашего кода. – CiscoIPPhone

+0

исправлена ​​ошибка объявления функции. –

+0

привет, работает ли это в Google Finance с функциями масштабирования и панорамирования и т. Д.? – bouncingHippo

ответ

10

Обнаружил проблему, легенда должна быть объявлена ​​после отображения графика.

Большое спасибо людям в #dojo за то, что они указали мне на другие примеры, которые помогли мне заметить это.

+0

Я прочитал этот вопрос через RSS, пошел, чтобы ответить, что вам нужно поменять местами 2 линии, и обнаружили, что вы уже нашли это. :-) В целом #dojo и форум dojo - это правильные места, чтобы задавать вопросы, связанные с додзе. Это хорошо для общих вопросов. –

+0

Да, и я потратил несколько минут на это, прежде чем я заметил, что я сделал их не так. Спасибо. –

+0

Просто, чтобы уточнить, когда вы говорите: «Легенда должна быть объявлена ​​после рендеринга графика», вы говорите: call chart1.render(); а затем создать легенду с чем-то вроде: new Legend ({chart: chart1}, «legend»); –

Смежные вопросы