Управление цветовыми оттенками во 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 попытается создать дополнительные цвета, осветляя и затемняя цвета в теме.

Если количество цветов, которое вам нужно, является переменным, создайте массив динамически в своем скрипте.

person Raidri    schedule 20.01.2015
comment
Кажется, это исправлено. Я где-то читал, что нужно определить как минимум 5 цветов. Достаточно ли 5 ​​доступных цветов? - person Mark Salamon; 20.01.2015
comment
Если вы не хотите, чтобы флот использовал осветленные или затемненные цвета, вы должны определить как минимум столько цветов, сколько рядов данных. - person Raidri; 20.01.2015
comment
Еще раз спасибо. Кстати, вместо того, чтобы вручную создавать этот список цветов, есть ли способ получить доступ к Flot API, чтобы просто привести их список цветов в порядок? Я не мог найти это. - person Mark Salamon; 20.01.2015