Python: отобразить диапазон с плавающей точкой [0,0, 1,0] на диапазон цветов [красный, зеленый]? - PullRequest
3 голосов
/ 12 июля 2011

У меня есть функция, которая возвращает результаты с плавающей точкой в ​​интервале [0.0, 1.0]. Я хотел бы визуализировать результаты, используя цвет в диапазоне от красного для 0,0 до зеленого для 1,0 (может быть через желтый для 0,5). Как я мог это сделать? Спасибо!

Ответы [ 2 ]

3 голосов
/ 12 июля 2011

Я думаю, что самый простой способ - это работать в HSL / HSB (яркость насыщенности оттенка), где значения оттенка 0-33% от максимума будут отображаться в диапазоне красный-оранжевый-желто-зеленый,Преимущество работы в HSL (против RGB) заключается в том, что результирующий диапазон цветов будет выглядеть намного лучше (например, ярко-желтый в RGB содержит щепотку синего цвета).

Таким образом, в основном вы создадите значение на основепостоянное значение S и L и значение H, соответствующее

your_value * (1/3 of the maximum H value, often 255)

, а затем преобразовать это значение обратно в RGB для отображения.Не знаю Python (позор мне), но, очевидно, модуль colorsys может сделать это преобразование для вас.

2 голосов
/ 12 июля 2011

Если у вас есть способ представить значения RGB, представленные в виде 3-х кортежей (R, G, B) в диапазоне 0..1, звучит так, будто вы хотите перейти от: (1, 0, 0) к : (0, 1, 0).

Вы можете просто использовать: rgbs = [(1-i,i,0) for i in your_floats]

Затем используйте любую графическую библиотеку, чтобы визуализировать эти 3 кортежа в качестве реальных цветов RGB.

...