Контролиране на цветовите нюанси във Flot

Имам лентова диаграма, в която трябва да огранича броя на използваните цветове, така че различните ленти да се окажат с един и същи цвят. Например, ако цветовете са ограничени до червено и синьо и има 6 ленти (всяка своя собствена серия), тогава ги покажете като:

Червено Син Червен Син Червен Син

(Това НЕ са 2 серии, повтарящи се на всяка ос x.)

Направих това, като създадох променлива с масив от цветове:

var availableColors = ["Red", "Blue"];

тогава в конфигурацията, която съм задал:

colors: availableColors,...

Само този вид работи. Двата цвята наистина се повтарят във всички ленти, но всеки път, когато цвят се повтаря в нова лента, той се показва в различен нюанс на този цвят. (Умишлено не съм направил „Сивото“ един от тези цветове, така че няма 50 нюанса на шегата.)

Как да поддържам цветовете фиксирани на всяка лента, така че да не получавам нюанси на всеки цвят?


person Mark Salamon    schedule 19.01.2015    source източник


Отговори (1)


Какво ще кажете за това?

var availableColors = ["Red", "Blue", "Red", "Blue", "Red", "Blue"];

Това, което се случва с вашия масив, е поведението по подразбиране на flot (вижте документация):

Ако има повече серии от данни, отколкото цветове, Flot ще се опита да генерира допълнителни цветове чрез изсветляване и потъмняване на цветовете в темата.

Ако броят на цветовете, от които се нуждаете, е променлив, създайте масива динамично във вашия скрипт.

person Raidri    schedule 20.01.2015
comment
Това изглежда го оправи. Четох някъде, че трябва да определите поне 5 цвята. Трябва ли 5 ​​да са достатъчни в наличните цветове? - person Mark Salamon; 20.01.2015
comment
Ако не искате flot да използва изсветлени или потъмнени цветове, трябва да дефинирате поне толкова цветове, колкото сериите от данни. - person Raidri; 20.01.2015
comment
Благодаря отново. Между другото, вместо ръчно създаване на този списък с цветове, има ли някакъв начин за достъп до API на Flot, за да подредите списъка с цветове? Не успях да намеря това. - person Mark Salamon; 20.01.2015