色相饱和度值(HSV)色图轮matplotlib

时间:2019-06-21 19:34:36

标签: python matplotlib colormap

我正在绘制一张通过颜色代码描述方向的图像。根据文献,通常使用2pi轮表示的色相饱和度(HSV)颜色空间进行编码。如何创建HSV色标轮?

我必须以这种方式创建它,但是我无法弄清楚如何以1pi的周期制作整个2pi轮。

Dim rw As Range
'...
'...

rst.Open mySQL, cnt, adOpenDynamic, adLockOptimistic
For i = 2 To LastRow
     With ActiveSheet.Rows(i)
         rst.AddNew
         rst.Fields("Department")=.Parent.Range("A2").value
         rst.Fields("Section#") = .Cells(2).Value
         rst.Fields("Operation#") = .Cells(3).Value
         rst.Fields("Job") = .Cells(4).Value
         rst.Fields("Program") = .Cells(12).Value
     End with
     rst.UpdateBatch
Next i

我想获得类似的东西: !:output

1 个答案:

答案 0 :(得分:0)

要创建色轮,您需要绕过整个圆,从0到2pi或从pi到3pi等。

然后,您可能想要创建新的色彩图,其中包含原始色彩图的两倍。

import matplotlib.pyplot as plt
from matplotlib import cm
import matplotlib as mpl
import numpy as np

fig = plt.figure()

display_axes = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='polar')

quant_steps = 256
norm = mpl.colors.Normalize(0, 2 * np.pi)
hsv = cm.get_cmap('hsv', quant_steps)
cmap = mpl.colors.ListedColormap(hsv(np.tile(np.linspace(0,1,quant_steps),2)))

cb = mpl.colorbar.ColorbarBase(display_axes,
                               cmap=cmap,
                               norm=norm,
                               orientation='horizontal')
cb.outline.set_visible(False)                                 
display_axes.set_axis_off()
plt.show()

enter image description here

相关问题