색상 지정 #

Matplotlib는 다음 형식을 인식하여 색상을 지정합니다.

체재

예시

닫힌 간격 [0, 1]에 있는 부동 소수점 값의 RGB 또는 RGBA(빨간색, 녹색, 파란색, 알파) 튜플.

  • (0.1, 0.2, 0.5)

  • (0.1, 0.2, 0.5, 0.3)

대소문자를 구분하지 않는 16진수 RGB 또는 RGBA 문자열입니다.

  • '#0f0f0f'

  • '#0f0f0f80'

대소문자를 구분하지 않는 RGB 또는 RGBA 문자열 등가 중복 문자의 16진수 속기.

  • '#abc'~처럼'#aabbcc'

  • '#fb1'~처럼'#ffbb11'

그레이스케일 값에 대한 닫힌 간격의 부동 소수점 값의 문자열 표현입니다 .[0, 1]

  • '0'검은색으로

  • '1'하얗게

  • '0.8'밝은 회색

일부 기본 색상에 대한 단일 문자 속기 표기법.

메모

녹색, 청록색, 자홍색 및 노란색은 X11/CSS4 색상과 일치하지 않습니다. 일반적인 배경에 대해 컬러 라인을 더 잘 볼 수 있도록 특정 음영을 선택했습니다.

  • 'b'파란색으로

  • 'g'녹색으로

  • 'r'빨갛게

  • 'c'청록색으로

  • 'm'자홍색으로

  • 'y'노란색으로

  • 'k'검은색으로

  • 'w'하얗게

공백 없이 대소문자를 구분하지 않는 X11/CSS4 색상 이름입니다.

  • 'aquamarine'

  • 'mediumseagreen'

접두어 가 있는 xkcd 색상 조사 의 대소문자를 구분하지 않는 색상 이름입니다 .'xkcd:'

  • 'xkcd:sky blue'

  • 'xkcd:eggshell'

대소문자를 구분하지 않는 'T10' 범주 팔레트의 Tableau 색상.

메모

이것이 기본 색상 주기입니다.

  • 'tab:blue'

  • 'tab:orange'

  • 'tab:green'

  • 'tab:red'

  • 'tab:purple'

  • 'tab:brown'

  • 'tab:pink'

  • 'tab:gray'

  • 'tab:olive'

  • 'tab:cyan'

'C' 기본 속성 주기에 대한 인덱스 역할을 하는 숫자 앞에 오는 "CN" 색상 사양 입니다.

메모

Matplotlib은 그릴 때 색상을 인덱싱하고 주기에 색상이 포함되지 않은 경우 기본적으로 검은색을 사용합니다.

  • 'C0'

  • 'C1'

rcParams["axes.prop_cycle"](기본값: )cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])

또한보십시오

다음 링크는 Matplotlib의 색상에 대한 자세한 정보를 제공합니다.

"빨간색", "녹색" 및 "파란색"은 해당 색상의 강도입니다. 조합하여 색상 공간을 나타냅니다.

Matplotlib는 매개변수를 기반으로 아티스트를 그립니다 zorder. 지정된 값이 없는 경우 Matplotlib는 기본적으로 Axes에 추가된 아티스트 순서로 설정됩니다.

아티스트의 알파는 불투명도를 제어합니다. 새 아티스트의 RGB 색상이 축에 이미 있는 RGB 색상과 어떻게 결합되는지 나타냅니다.

두 명의 아티스트가 알파 합성으로 결합됩니다. Matplotlib는 아래 방정식을 사용하여 새 아티스트를 블렌딩한 결과를 계산합니다.

RGB_{new} = RGB_{below} * (1 - \alpha) + RGB_{artist} * \alpha

알파 1은 새 아티스트가 이전 색상을 완전히 덮는다는 것을 나타냅니다. 상단 색상에 대한 0의 알파는 보이지 않습니다. 그러나 모든 이전 아티스트의 누적 결과로 중간 값에 대한 혼합에 기여합니다. 다음 표에는 예제가 포함되어 있습니다.

알파 값

비주얼

0.3

../../_images/color_zorder_A.png

1

../../_images/color_zorder_B.png

메모

아티스트 재정렬은 Matplotlib에서 교환할 수 없습니다.

"CN" 색상 선택 #

Matplotlib는 아티스트를 그릴 때 "CN" 색상을 RGBA로 변환합니다. Cycler 로 스타일 지정 섹션에는 색상 및 스타일 속성 제어에 대한 추가 정보가 포함되어 있습니다.

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-v0_8')
  • 스타일: '기본값'
  • 스타일: 'seaborn-v0_8'

첫 번째 색상 'C0'은 제목입니다. 각 플롯은 각 스타일의 두 번째 및 세 번째 색상을 사용합니다 rcParams["axes.prop_cycle"](기본값: ). 그들은 각각 및 입니다.cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])'C1''C2'

X11/CSS4와 xkcd 색상 비교 #

xkcd 색상은 웹툰 xkcd에서 실시한 사용자 설문조사 에서 가져왔습니다 .

148개의 X11/CSS4 색상 이름 중 95개가 xkcd 색상 조사에도 나타납니다. 거의 모두 X11/CSS4 및 xkcd 팔레트에서 서로 다른 색상 값에 매핑됩니다. '검은색', '흰색', '청록색'만 동일합니다.

예를 들어 는 에 'blue'매핑되는 '#0000FF'반면 'xkcd:blue'는 에 매핑됩니다 '#0343DF'. 이러한 이름 충돌로 인해 모든 xkcd 색상에는 'xkcd:'접두사가 있습니다.

아래 비주얼은 이름 충돌을 보여줍니다. 색상 값이 일치하는 색상 이름은 굵게 표시됩니다.

import matplotlib.colors as mcolors
import matplotlib.patches as mpatch

overlap = {name for name in mcolors.CSS4_COLORS
           if f'xkcd:{name}' in mcolors.XKCD_COLORS}

fig = plt.figure(figsize=[9, 5])
ax = fig.add_axes([0, 0, 1, 1])

n_groups = 3
n_rows = len(overlap) // n_groups + 1

for j, color_name in enumerate(sorted(overlap)):
    css4 = mcolors.CSS4_COLORS[color_name]
    xkcd = mcolors.XKCD_COLORS[f'xkcd:{color_name}'].upper()

    # Pick text colour based on perceived luminance.
    rgba = mcolors.to_rgba_array([css4, xkcd])
    luma = 0.299 * rgba[:, 0] + 0.587 * rgba[:, 1] + 0.114 * rgba[:, 2]
    css4_text_color = 'k' if luma[0] > 0.5 else 'w'
    xkcd_text_color = 'k' if luma[1] > 0.5 else 'w'

    col_shift = (j // n_rows) * 3
    y_pos = j % n_rows
    text_args = dict(fontsize=10, weight='bold' if css4 == xkcd else None)
    ax.add_patch(mpatch.Rectangle((0 + col_shift, y_pos), 1, 1, color=css4))
    ax.add_patch(mpatch.Rectangle((1 + col_shift, y_pos), 1, 1, color=xkcd))
    ax.text(0.5 + col_shift, y_pos + .7, css4,
            color=css4_text_color, ha='center', **text_args)
    ax.text(1.5 + col_shift, y_pos + .7, xkcd,
            color=xkcd_text_color, ha='center', **text_args)
    ax.text(2 + col_shift, y_pos + .7, f'  {color_name}', **text_args)

for g in range(n_groups):
    ax.hlines(range(n_rows), 3*g, 3*g + 2.8, color='0.7', linewidth=1)
    ax.text(0.5 + 3*g, -0.3, 'X11/CSS4', ha='center')
    ax.text(1.5 + 3*g, -0.3, 'xkcd', ha='center')

ax.set_xlim(0, 3 * n_groups)
ax.set_ylim(n_rows, -1)
ax.axis('off')

plt.show()
그림 물감

스크립트의 총 실행 시간: (0분 1.413초)

Sphinx-Gallery에서 생성한 갤러리