Python:将浮点范围[0.0,1.0]映射到颜色范围[红色,绿色]?

发布于 2024-11-19 08:29:29 字数 91 浏览 2 评论 0原文

我有一个函数返回区间 [0.0, 1.0] 内的浮点结果。我想使用从红色(0.0)到绿色(1.0)(也许通过黄色(0.5))的颜色来可视化结果。我怎么能这么做呢?谢谢!

I have a function that returns float results in the interval [0.0, 1.0]. I would like to visualize the results using color ranging from red for 0.0 to green for 1.0 (maybe through yellow for 0.5). How could I do that? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

╭⌒浅淡时光〆 2024-11-26 08:29:29

我认为最简单的方法是在 HSL/HSB(色相饱和度亮度)中工作,其中色相最大值的 0-33% 值将映射到红-橙-黄-绿范围。使用 HSL(相对于 RGB)的优点是生成的颜色范围会更好看(例如,RGB 中的亮黄色包含少量蓝色)。

因此,基本上您将根据常量 S 和 L 值以及对应的 H 创建一个值,

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

然后将该值转换回 RGB 以进行显示。不了解Python(对我来说是耻辱),但显然 colorsys 模块 可以为你做这个转换。

I think the simplest way is to work in HSL/HSB (hue saturation lightness), where the hue values 0-33% of the maximum will map to the range red-orange-yellow-green. The advantage of working is HSL (vs RGB) is that the resulting color range will be much better-looking (eg bright yellow in RGB contains a pinch of blue).

So basically you will create a value based on a constant S and L value, and a H that corresponds to

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

and then transform that value back to RGB for display. Don't know Python (shame on me) but apparently the colorsys module can do this transformation for you.

谁许谁一生繁华 2024-11-26 08:29:29

假设您有办法在 0..1 范围内呈现表示为 3 元组 (R,G,B) 的 RGB 值,听起来您想要从: (1, 0, 0) 到: (0 , 1, 0)。

您只需使用: rgbs = [(1-i,i,0) for i in your_floats]

然后使用任何图形库将这些 3 元组可视化为实际的 RGB 颜色。

Assuming you have a way to present RGB values represented as 3-tuples (R,G,B) in the range of 0..1, it sounds like you want to go from: (1, 0, 0) to: (0, 1, 0).

You can just use: rgbs = [(1-i,i,0) for i in your_floats]

Then use any graphics library to visualize these 3-tuples as actual RGB colors.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文