5. matplotlib.colors

  1. matplotlib.colors是一个模块,用于转换数字或者颜色参数到 RGB 或者RGBA

    • RGB:一个浮点数元组,有3个浮点数。每个数都是 0-1之间
    • RGBA:一个浮点数元组,有4个浮点数。每个数都是 0-1之间
  2. colors.cnames是个字典,它给出了常用颜色的字符串和对应的#FFFFFF形式。 cnames

  3. colors.rgb2hex(rgb)函数:给出了rgb元组到#FFFFFF形式。 而hex2color(s)给出了#FFFFFFrgb形式。 rgb_hex

  4. 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是模块提供的一个默认的实例。 colorConverter

  5. colors.Colormap是所有colormap的基类。colormap用于将[0,1]之间的浮点数转换为RGBA颜色。

    它是一个颜色条,浮点数对应了颜色条的位置(归一化为0.0~1.0),RGBA颜色对应了指定颜色条某个位置处的颜色。

    其属性有:

    • namecolormap名字
    • 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]之间
  6. colors.LinearSegmentColormap(Colormap):是Colormap的子类。

    额外的属性: ._gamma/._segmentdata

    • 它的构造函数为:__init__(self, name, segmentdata, N=256, gamma=1.0)。其中segmentdata是一个字典,字典的键分别为'red'/'green'/'blue',字典的值为一个列表,列表元素为三元组(alpha被忽略)。如:

      1. {'red':[(0.0, 0.0, 0.0),
      2. (0.5, 1.0, 1.0),
      3. (1.0, 1.0, 1.0)],
      4. 'green': [(0.0, 0.0, 0.0),
      5. (0.25, 0.0, 0.0),
      6. (0.75, 1.0, 1.0),
      7. (1.0, 1.0, 1.0)],
      8. 'blue': [(0.0, 0.0, 0.0),
      9. (0.5, 0.0, 0.0),
      10. (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]

    LinearSegmentColormap0 LinearSegmentColormap1

  7. colors.ListedColormap(Colormap)Colormap的子类。它用于从一个list of colors中创建colormap

    • 构造方法为:__init__(self, colors, name=’from_list’, N=None)。其中color是一个颜色列表。或者为一个浮点数ndarray,其形状为Nx3或者Nx4Ncolormap的条目数,如果N <len(colors),则截断colors。如果N > len(colors),则重复colors到指定长度。

    ListedColormap

  8. 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):逆归一化处理

    Normalize

  9. colors.LogNorm类是Normalize的子类,它使用对数来归一化

  10. colors.rgb_to_hsv(arr):将rgb形式的浮点数数组转换为hsv格式的浮点数组。而hsv_to_rgb(hsv)执行的是逆向操作。