matplotlib中的2d hsv颜色空间

non*_*one 9 python numpy matplotlib

我试图在matplotlib中重现这个图(取自维基百科)

在此输入图像描述

基本上是2d hsv颜色空间,饱和度设置为1.0.这是我到目前为止所做的

from pylab import *
from numpy import outer

x = outer(arange(0, 1, 0.01), ones(100))

imshow(transpose(x), cmap=cm.hsv)
show()
Run Code Online (Sandbox Code Playgroud)

这绘制了色调通道,但我不知道如何添加第二个通道.

HYR*_*YRY 18

您需要创建HSV阵列并将其转换为RGB,这是一个示例:

import numpy as np
import pylab as pl
from matplotlib.colors import hsv_to_rgb

V, H = np.mgrid[0:1:100j, 0:1:300j]
S = np.ones_like(V)
HSV = np.dstack((H,S,V))
RGB = hsv_to_rgb(HSV)
pl.imshow(RGB, origin="lower", extent=[0, 360, 0, 1], aspect=150)
pl.xlabel("H")
pl.ylabel("V")
pl.title("$S_{HSV}=1$")
pl.show()
Run Code Online (Sandbox Code Playgroud)

输出是:

在此输入图像描述