5. matplotlib.colors
matplotlib.colors
是一个模块,用于转换数字或者颜色参数到RGB
或者RGBA
RGB
:一个浮点数元组,有3个浮点数。每个数都是 0-1之间RGBA
:一个浮点数元组,有4个浮点数。每个数都是 0-1之间
colors.cnames
是个字典,它给出了常用颜色的字符串和对应的#FFFFFF
形式。colors.rgb2hex(rgb)
函数:给出了rgb
元组到#FFFFFF
形式。 而hex2color(s)
给出了#FFFFFF
到rgb
形式。colors.ColorConverter
类是个颜色转换器类。它提供了下面方法用于转换颜色:.to_rgb(arg)
:转换其他类型的颜色到标准的rgb
三元组。其中arg
可以为一个rgb/rgba
序列,或者一个字符串,字符串格式为:- 一个代表颜色的字符,如
'rgbcmykw'
- 一个十六进制的颜色字符串,如
'#0FFFFFF'
- 一个标准的颜色的名字,如
'red'
- 一个代表浮点数的字符串,如
'0.5'
- 一个代表颜色的字符,如
.to_rgba(arg, alpha=None)
:转换其他类型的颜色到标准的rgba
四元组to_rgba_array(c, alpha=None)
:它返回一个ndarray
,而不是一个元组
colors.colorConverter
是模块提供的一个默认的实例。colors.Colormap
是所有colormap
的基类。colormap
用于将[0,1]
之间的浮点数转换为RGBA
颜色。它是一个颜色条,浮点数对应了颜色条的位置(归一化为0.0~1.0),
RGBA
颜色对应了指定颜色条某个位置处的颜色。其属性有:
name
:colormap
名字N
:一个整数,表示rgb
颜色层级,默认为256级
常用方法有:
__call__(self, X, alpha=None, bytes=False)
:颜色转换。X
为一个标量或者ndarray
,给出了待转换的数据。如果是浮点数,则必须是[0.0,1.0]
之间。如果是整数,则必须是[0,self.N)
之间。如果是标量,则返回rgba
四元组。如果是ndarray
,则返回一个ndarray
,相当于对每个元素进行标量转换,然后组装成ndarray
alpha
:一个浮点数,给出了透明度。必须是0到1之间bytes
:一个布尔值。如果为True
,则返回的结果是[0,255]
之间。否则是[0.0,1.0]
之间
colors.LinearSegmentColormap(Colormap)
:是Colormap
的子类。额外的属性:
._gamma
/._segmentdata
它的构造函数为:
__init__(self, name, segmentdata, N=256, gamma=1.0)
。其中segmentdata
是一个字典,字典的键分别为'red'/'green'/'blue'
,字典的值为一个列表,列表元素为三元组(alpha
被忽略)。如:{'red':[(0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'green': [(0.0, 0.0, 0.0),
(0.25, 0.0, 0.0),
(0.75, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'blue': [(0.0, 0.0, 0.0),
(0.5, 0.0, 0.0),
(1.0, 1.0, 1.0)]}
每一行代表了元组
(x,y0,y1)
。其中red/green/blue
中,每一列x
必须从0递增到1;y0/y1
也是如此。对于任何落到x[i]~x[i+1]
之间的值z
,其映射的颜色由y1[i]
和y0[i+1]
插值决定。类方法
from_list(name, colors, N=256, gamma=1.0)
:从一个颜色序列中构造LinearSegmentColormap
。其中colors
是一个颜色序列,matplotlib
会将颜色均匀分布,val=0
处对应colors[0]
,val=1
处对应colors[-1]
。你也可以传递一个(value,color)
元组的序列,其中value
指定了对应位置处的color
,其中value
位于[0.0,1.0]
colors.ListedColormap(Colormap)
是Colormap
的子类。它用于从一个list of colors
中创建colormap
。- 构造方法为:
__init__(self, colors, name=’from_list’, N=None)
。其中color
是一个颜色列表。或者为一个浮点数ndarray
,其形状为Nx3
或者Nx4
。N
为colormap
的条目数,如果N <len(colors)
,则截断colors
。如果N > len(colors)
,则重复colors
到指定长度。
- 构造方法为:
colors.Normalize
:是归一化类。它用于将数据归一化到[0.0,1.0]
- 构造方法为:
__init__(self, vmin=None, vmax=None, clip=False)
。如果未提供vmin/vmax
,则使用数据的最小值和最大值。如果clip=True
,则落在vmin~vmax
之外的数据被截断为0或者1。如果vmin==vmax
,则始终返回 0 - 属性有:
.vmin/.vmax/.clip
- 类方法为:
process_value(value)
:调整value
的格式,从而方便后续的操作 - 实例方法:
__call__(self, value, clip=None)
:归一化处理 - 实例方法:
inverse(self, value)
:逆归一化处理
- 构造方法为:
colors.LogNorm
类是Normalize
的子类,它使用对数来归一化colors.rgb_to_hsv(arr)
:将rgb
形式的浮点数数组转换为hsv
格式的浮点数组。而hsv_to_rgb(hsv)
执行的是逆向操作。