PDA

Просмотр полной версии : Как поменять цвет серии для разных периодов для ColumnCahrt


lemegeton
25.09.2006, 16:27
Всем привет. Народ, как поменять цвет серии для разных периодов? Т.е. у меня есть график ColumnChart в нем одна серия. График отображает 5 периодов. Следовательно пять экземпляров серии одного цвета. А я хочу сделать чтобы первая была одного цвета а все остальные другого. Как это сделать? Подскажите пожалуйста.

Nirth
25.09.2006, 22:52
Можно например через каскадные стили.

Сделать два стиля, один для всех, а другой для одиночке

Стили конкретного класса - ColumnSeries (http://livedocs.macromedia.com/flex/2/langref/mx/charts/series/ColumnSeries.html)

Про то как работать со стилями вообще(Там ссылки есть, советую на все понажимать) (http://livedocs.macromedia.com/flex/2/docs/00000752.html)

lemegeton
26.09.2006, 11:21
Вот я сделал для всех

ColumnChart {
chartSeriesStyles: PCCSeries1, PCCSeries2;
}
.PCCSeries1 {
fill: #ff4b35;
}
.PCCSeries2 {
fill: #ff4b35;
}


а как сделать для одиночки?

lemegeton
27.09.2006, 11:20
все молчат...есть вариант через itemRenderer решить задачу. Но как в хелпе написано - нужно реализовать интерфейс IDataRenderer и перегрузить updateDisplayList класса ProgrammaticSkin...Все работает я разобрался... А че попроще нельзя?

Nirth
27.09.2006, 13:58
А чем CSS не устроил? присоединить PCCSeries один ко всем кроме одной, и PCCSeries2 к одной...или я вопрос не так понял,?

fishbounce
27.09.2006, 16:46
Разбей свою серию на две - одна серия с одним периодом, вторая со всеми остальными. И задай для каждый серии свой стиль. Так не пойдет?

lemegeton
28.09.2006, 12:03
да css устроил, только я не пойму как можно прицепить к первому экземпляру серии один стиль а к остальным 4 другой... Как?

Nirth
28.09.2006, 14:11
а как ты делаешь?

lemegeton
03.10.2006, 12:04
ColumnChart {
chartSeriesStyles: PCCSeries1, PCCSeries2;
}
.PCCSeries1 {
fill: #ff4b35;
}
.PCCSeries2 {
fill: #ff4b35;
}


получается что для всех графиков (он у меня правда один) типа ColumnChart устанавливается цвет для первой серии #FF4b35... ну и для второй такой же. А мне надо чтобы для первого экзампляра первой серии был этот цвет, а вот уже для всех остальных экземпляров первой серии другой цвет.

Nirth
03.10.2006, 12:15
дубль два, создай уникальный стиль, и в теге серии(не в теге чарта а серии) задаей ему стиль явно

lemegeton
03.10.2006, 13:50
<mx:Style>
ColumnChart {
chartSeriesStyles: PCCSeries1, PCCSeries2;
}
.PCCSeries1 {
fill: #ff4b35;
}
.PCCSeries2 {
fill: #6a89cc;
}
.mySer{
fill: #FF0000;
}
</mx:Style>


:)) создал. Теперь все 5 экземпляров имеют один и тот же цвет - FF0000

<mx:series>
<mx:ColumnSeries xField="xfield" yField="yfield" styleName="mySer"/>
</mx:series>

fishbounce
03.10.2006, 14:49
ну естественно, у тебя же все 5 экземпляров в одной серии, которой ты задал один стиль.
Нельзя разбить твою серию на две?
Каждой задать стиль, который хочешь...

lemegeton
03.10.2006, 15:10
fishbounce, смотри сам - если мы добавим еще одну серию, то получится что значение первого экземпляра второй серии будет равно нулю и значения остальных 4-ех экземпляров первой серии тоже будут равны нулю, но на графике то они будут отображаться, и horizontalAxis для каждого периода будет разделен на две равные части... короче это не вариант... Я же писал что используя itemRenderer тега ColumnSeries можно решить проблему, но я хотел нати какое-то более простое решение.

fishbounce
03.10.2006, 19:18
про horizontalAxis понял, про нули че-то нет... ну да ладно, все равно не вариант. Думаю, тогда только с itemRenderer