2014-01-14 2 views
0

Я использую Dojo 1.9, используя memoryStore, и в магазине есть 4 элемента данных, в дополнение к ключу. Для каждого из 4 элементов данных мне нужно построить диаграмму пирога. отлично работает, но только проблема заключается в том, что я не знаю, как указать цвет.Укажите цвет для пирога в диаграмме Dojo

Идентификатор может быть одним из следующих - Низкий, Средний, Высокий и Крайний. Я хочу использовать одни и те же цвета для каждого идентификатора во всех диаграммах. Возможно ли указать цвет, основанный на значении идентификатора?

Во фрагменте кода, как показано ниже:

var store = new Observable(new Memory({ 
    data: { 
    identifier: "accumulation", 
    items: theData 
    } 

    })); 


    theChart.setTheme(PrimaryColors) 
    .addPlot("default", { 
    type: Pie, 
    font: "normal normal 11pt Tahoma", 
    fontColor: "black", 
    labelOffset: -30, 
    radius: 80 
    }).addSeries("accumulation", new StoreSeries(store, { query: { } }, dataElement)); 

ответ

1

Я, возможно недопонимание свой вопрос здесь (? Сюжет взаимодействует непосредственно с магазином StoreSeries), но это fill свойство, что вы «Ищете?

// Assuming data is an array of rows retrieved from the store 
for(var i etc...) { 
    // make chart 
    // ... 
    chart.addSeries("things", [ 
     { y: data[i]["low"], fill: "#55FF55", text: "Low" }, 
     { y: data[i]["mod"], fill: "#FFFF00", text: "Moderate" }, 
     { y: data[i]["high"], fill: "#FFAA00", text: "High" }, 
     { y: data[i]["extr"], fill: "#FF2200", text: "Extreme" } 
    ]); 
} 

Update: При использовании StoreSeries, третий аргумент (dataElement в коде) также может быть функцией. Вы можете использовать функцию, чтобы вернуть объект (содержащий выше перечисленные свойства, например fill), а не только значение.

chart.addSeries("thingsFromStore", new StoreSeries(store, {}, function(i) { 
    return { 
     y : i[dataElement], 
     text: "Label for " + i.accumulation, 
     fill: getColorForAccumulation(i) 
    };  
})); 
+0

Я обновил вопрос с помощью фрагмента кода – patb23

+0

Да, но не знаю, как его определить при использовании магазина. – patb23

+0

@ patb23 Хмм, вторая попытка обновленного ответа :) – Frode

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