指定颜色

matplotlib识别以下格式以指定颜色:

  • 以闭合间隔表示的浮点值的RGB或RGBA(红、绿、蓝、α)元组 [0, 1] (例如, (0.1, 0.2, 0.5)(0.1, 0.2, 0.5, 0.3)
  • 十六进制rgb或rgb a字符串(例如, '#0f0f0f''#0f0f0f80' ;不区分大小写);
  • 一种简写的十六进制RGB或RGBA字符串,相当于通过复制每个字符获得的十六进制RGB或RGBA字符串(例如。, '#abc' ,相当于 '#aabbcc''#abcd' ,相当于 '#aabbccdd' ;不区分大小写);
  • 浮点值的字符串表示形式 [0, 1] 包括灰级(例如, '0.5'
  • 其中一个角色 {{'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'}} ,是蓝色、绿色、红色、青色、品红、黄色、黑色和白色的简写符号。注意颜色 'g', 'c', 'm', 'y' 与X11/CSS4颜色不一致。他们选择了特殊的色调,以便在典型背景下更好地看到彩色线条。
  • X11/CSS4颜色名称(不区分大小写);
  • 名字来自 xkcd color survey 前缀 'xkcd:' (例如, 'xkcd:sky blue' ;不区分大小写);
  • “T10”类别调色板中的一种Tableau颜色(默认颜色循环): {{'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'}} (不区分大小写);
  • “CN”颜色规格,即 'C' 后跟一个数字,它是默认属性循环的索引 (rcParams["axes.prop_cycle"] (default: cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])) );索引将在渲染时发生,如果循环不包括颜色,则默认为黑色。

“红”、“绿”和“蓝”是这些颜色的强度,它们的组合跨越整个色彩空间。

“alpha”的行为取决于 zorder 艺术家的作品。较高的 zorder 艺术家被画在下层艺术家的上面,“阿尔法”决定下层艺术家是否被上层艺术家所覆盖。如果像素的旧RGB是 RGBold 被添加的艺术家像素的RGB是 RGBnew 用alpha alpha ,则像素的RGB更新为: RGB = RGBOld * (1 - Alpha) + RGBnew * Alpha . alpha为1表示旧颜色完全被新艺术家覆盖,alpha为0表示艺术家的像素是透明的。

有关matplotlib中颜色的详细信息,请参见

“CN”颜色选择

“cn”颜色在艺术家创建后立即转换为rgba。例如,

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

th = np.linspace(0, 2*np.pi, 128)


def demo(sty):
    mpl.style.use(sty)
    fig, ax = plt.subplots(figsize=(3, 3))

    ax.set_title('style: {!r}'.format(sty), color='C0')

    ax.plot(th, np.cos(th), 'C1', label='C1')
    ax.plot(th, np.sin(th), 'C2', label='C2')
    ax.legend()

demo('default')
demo('seaborn')
  • style: 'default'
  • style: 'seaborn'

将使用标题的第一种颜色,然后使用每个样式的第二种和第三种颜色打印 rcParams["axes.prop_cycle"] (default: cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])) .

XKCD V X11/CSS4

xkcd的颜色来源于网络漫画xkcd进行的用户调查。 Details of the survey are available on the xkcd blog .

在CSS颜色列表中的148种颜色中,x11/css4名称与xkcd名称之间存在95种名称冲突,其中3种名称的十六进制值不同。例如 'blue' 地图到 '#0000FF' 在哪里 'xkcd:blue' 地图到 '#0343DF' . 由于这些名称冲突,所有XKCD颜色 'xkcd:' 前缀。正如博客文章中提到的,虽然基于这样的调查重新定义x11/css4名称可能很有趣,但我们不会单方面这样做。

名称冲突显示在下表中;十六进制值一致的颜色名称显示为粗体。

import matplotlib._color_data as mcd
import matplotlib.patches as mpatch

overlap = {name for name in mcd.CSS4_COLORS
           if "xkcd:" + name in mcd.XKCD_COLORS}

fig = plt.figure(figsize=[4.8, 16])
ax = fig.add_axes([0, 0, 1, 1])

for j, n in enumerate(sorted(overlap, reverse=True)):
    weight = None
    cn = mcd.CSS4_COLORS[n]
    xkcd = mcd.XKCD_COLORS["xkcd:" + n].upper()
    if cn == xkcd:
        weight = 'bold'

    r1 = mpatch.Rectangle((0, j), 1, 1, color=cn)
    r2 = mpatch.Rectangle((1, j), 1, 1, color=xkcd)
    txt = ax.text(2, j+.5, '  ' + n, va='center', fontsize=10,
                  weight=weight)
    ax.add_patch(r1)
    ax.add_patch(r2)
    ax.axhline(j, color='k')

ax.text(.5, j + 1.5, 'X11', ha='center', va='center')
ax.text(1.5, j + 1.5, 'xkcd', ha='center', va='center')
ax.set_xlim(0, 3)
ax.set_ylim(0, j + 2)
ax.axis('off')
colors

出:

(0.0, 3.0, 0.0, 50.0)

脚本的总运行时间: (0分1.294秒)

关键词:matplotlib代码示例,codex,python plot,pyplot Gallery generated by Sphinx-Gallery