带有Matplotlib的Maxwell彩色三角形

带有Matplotlib的Maxwell彩色三角形,matplotlib,colors,Matplotlib,Colors,我想创建一个麦克斯韦颜色三角形 () 使用Matplotlib。 我找到了类似的代码: 然而,在这种情况下,相等比例的R、G和B会产生更深的颜色,这不是我想要的 欢迎提出任何意见。在麦克斯韦三角形内部:r+g+b=1.0,这意味着中心将是RGB(1/3,1/3,1/3)([0.0,1.0]范围),与白色RGB(1.0,1.0,1.0)相比是暗的 为了在中心获得白色(RGB(1.0,1.0,1.0)),可以将RGB值乘以3.0:中心将完全为白色,但会裁剪超出边界的值,即RGB(2.0,1.0,1

我想创建一个麦克斯韦颜色三角形

()

使用Matplotlib。 我找到了类似的代码:

然而,在这种情况下,相等比例的R、G和B会产生更深的颜色,这不是我想要的


欢迎提出任何意见。在麦克斯韦三角形内部:r+g+b=1.0,这意味着中心将是RGB(1/3,1/3,1/3)([0.0,1.0]范围),与白色RGB(1.0,1.0,1.0)相比是暗的

为了在中心获得白色(RGB(1.0,1.0,1.0)),可以将RGB值乘以3.0:中心将完全为白色,但会裁剪超出边界的值,即RGB(2.0,1.0,1.0)将显示为RGB(1.0,1.0,1.0)

另一种方法是最大化亮度:RGB(r,g,b)->1/max(r,g,b)*RGB(r,g,b),例如RGB(0.2,0.5,0.1)->RGB(0.4,1.0,0.2)。这样,值就不会被剪裁,亮度就达到最大


在麦克斯韦三角形内部:r+g+b=1.0,这意味着中心将是RGB(1/3,1/3,1/3)([0.0,1.0]范围),与白色RGB(1.0,1.0,1.0)相比,它是暗的

为了在中心获得白色(RGB(1.0,1.0,1.0)),可以将RGB值乘以3.0:中心将完全为白色,但会裁剪超出边界的值,即RGB(2.0,1.0,1.0)将显示为RGB(1.0,1.0,1.0)

另一种方法是最大化亮度:RGB(r,g,b)->1/max(r,g,b)*RGB(r,g,b),例如RGB(0.2,0.5,0.1)->RGB(0.4,1.0,0.2)。这样,值就不会被剪裁,亮度就达到最大

可能相关:可能相关: