matplotlib의 명명 된 색상


259

플롯에 사용하기 위해 matplotlib에서 사용할 수있는 명명 된 색상은 무엇입니까? matplotlib 문서에서 이것이 유일한 이름이라고 주장하는 목록을 찾을 수 있습니다.

b: blue
g: green
r: red
c: cyan
m: magenta
y: yellow
k: black
w: white

그러나 적어도이 맥락에서 이러한 색상을 사용할 수도 있다는 것을 알았습니다.

scatter(X,Y, color='red')
scatter(X,Y, color='orange')
scatter(X,Y, color='darkgreen')

그러나 이들은 위의 목록에 없습니다. 누구나 사용할 수있는 명명 된 색상의 철저한 목록을 알고 있습니까?


4
기본적으로 모든 HTML 색상 이름이므로 몇 가지 멋진 차트를 원할 경우 언제든지 Google "HTML 색상"을 사용할 수 있습니다. 아래 @BoshWash의 훌륭한 답변은 정확한 목록을 제공합니다.
Joe Kington


좋은 사진입니다. 아마 눈치 채 셨을 것입니다. 공정하게 말하면이 질문을 게시하기 한 달 전에 처음 게시 되었으며이 질문에 대한 답을 찾기 위해 그 전에 여러 번 문서를 검색했습니다.
TC Proctor

답변:


303

나는 사용하고 싶은 색상의 이름을 끊임없이 잊어 버리고이 질문으로 계속 돌아옵니다 =)

이전 답변은 훌륭하지만 게시 된 이미지에서 사용 가능한 색상에 대한 개요를 얻는 것이 약간 어렵다는 것을 알았습니다. 색상을 비슷한 색상으로 그룹화하는 것을 선호하므로 위의 주석에서 언급 된 matplotlib 답변 을 약간 조정하여 색상 목록을 열로 정렬했습니다. 순서는 눈으로 정렬하는 방법과 동일하지 않지만 좋은 개요를 제공한다고 생각합니다.

나는이 답변을 원래 게시 한 이래로 'rebeccapurple'이 추가되었고 세 개의 현자 색상이 'xkcd :'접두사 아래로 이동되었음을 반영하기 위해 이미지와 코드를 업데이트했습니다.

여기에 이미지 설명을 입력하십시오

matplotlib 예제에서 많이 변경하지는 않았지만 다음은 완전성에 대한 코드입니다.

import matplotlib.pyplot as plt
from matplotlib import colors as mcolors


colors = dict(mcolors.BASE_COLORS, **mcolors.CSS4_COLORS)

# Sort colors by hue, saturation, value and name.
by_hsv = sorted((tuple(mcolors.rgb_to_hsv(mcolors.to_rgba(color)[:3])), name)
                for name, color in colors.items())
sorted_names = [name for hsv, name in by_hsv]

n = len(sorted_names)
ncols = 4
nrows = n // ncols

fig, ax = plt.subplots(figsize=(12, 10))

# Get height and width
X, Y = fig.get_dpi() * fig.get_size_inches()
h = Y / (nrows + 1)
w = X / ncols

for i, name in enumerate(sorted_names):
    row = i % nrows
    col = i // nrows
    y = Y - (row * h) - h

    xi_line = w * (col + 0.05)
    xf_line = w * (col + 0.25)
    xi_text = w * (col + 0.3)

    ax.text(xi_text, y, name, fontsize=(h * 0.8),
            horizontalalignment='left',
            verticalalignment='center')

    ax.hlines(y + h * 0.1, xi_line, xf_line,
              color=colors[name], linewidth=(h * 0.8))

ax.set_xlim(0, X)
ax.set_ylim(0, Y)
ax.set_axis_off()

fig.subplots_adjust(left=0, right=1,
                    top=1, bottom=0,
                    hspace=0, wspace=0)
plt.show()

추가 명명 된 색상

2017-10-25로 업데이트되었습니다. 이전 업데이트를이 섹션에 병합했습니다.

xkcd

matplotlib로 플로팅 할 때 추가 명명 된 색상을 사용 하려면 'xkcd :'접두사를 통해 xkcd crowdsourced 색상 이름을 사용할 수 있습니다 .

plt.plot([1,2], lw=4, c='xkcd:baby poop green')

이제 다양한 이름의 색상에 액세스 할 수 있습니다!

여기에 이미지 설명을 입력하십시오

Tableau

기본 Tableau 색상은 matplotlib에서 'tab :'접두사를 통해 사용할 수 있습니다.

plt.plot([1,2], lw=4, c='tab:green')

10 가지 뚜렷한 색상이 있습니다 :

여기에 이미지 설명을 입력하십시오

HTML

HTML 16 진수 코드로 색상을 플롯 할 수도 있습니다 .

plt.plot([1,2], lw=4, c='#8f9805')

이것은 16 진수 코드가 문자열로 전달된다는 사실 외에도 이름이 지정된 색상이 아니라 RGB 튜플을 지정하는 것과 더 유사하며 선택할 수있는 1600 만 색상의 이미지는 포함하지 않습니다 ...


자세한 내용 은 matplotlib 색상 설명서 및 사용 가능한 색상을 지정하는 소스 파일을 참조하십시오 _color_data.py.



줄거리 감사합니다! 호기심에서 'y'가 '노란색'과 실제로 다른가요? 첫 번째 줄거리는 다른 색상으로 표시됩니다.
ComputerScientist

1
@ComputerScientist 네, 이 Github 이슈 와 링크 된 메일 링리스트 토론에 따르면, 단일 글자 색은 Matlab에 따라 RBG 값이 할당되었으며 전체 이름은 HTML 색에 해당합니다. Matlab 단일 문자 색상도 현재 HTML 표준을 따르므로 최근 Matlab 변경인지 또는 가시성과 같은 이유로 matplotlib 단일 문자 색상이 조정 / 선택되었는지 확실하지 않습니다.
joelostblom

@AdrianTorrie : 추가 '감사'로 자신이 선택한 현상금을 수여 할 수 있습니다! 현상금 상이이 답변을 강조하고 답변자에게 추가 포인트를 제공합니다.
SherylHohman

최신 정보를 유지해 주셔서 감사합니다!
JakeCowton

@joelostblom, xkcd 색상 플롯에서 16 진수 코드를 색상 이름 (검정색) 옆에 회색으로 표시하려면 어떻게 했습니까?
MMelnicki

312

Matplotlib는 colors.py 모듈의 사전을 사용합니다.

이름을 인쇄하려면 다음을 사용하십시오.

# python2:

import matplotlib
for name, hex in matplotlib.colors.cnames.iteritems():
    print(name, hex)

# python3:

import matplotlib
for name, hex in matplotlib.colors.cnames.items():
    print(name, hex)

이것은 완전한 사전입니다.

cnames = {
'aliceblue':            '#F0F8FF',
'antiquewhite':         '#FAEBD7',
'aqua':                 '#00FFFF',
'aquamarine':           '#7FFFD4',
'azure':                '#F0FFFF',
'beige':                '#F5F5DC',
'bisque':               '#FFE4C4',
'black':                '#000000',
'blanchedalmond':       '#FFEBCD',
'blue':                 '#0000FF',
'blueviolet':           '#8A2BE2',
'brown':                '#A52A2A',
'burlywood':            '#DEB887',
'cadetblue':            '#5F9EA0',
'chartreuse':           '#7FFF00',
'chocolate':            '#D2691E',
'coral':                '#FF7F50',
'cornflowerblue':       '#6495ED',
'cornsilk':             '#FFF8DC',
'crimson':              '#DC143C',
'cyan':                 '#00FFFF',
'darkblue':             '#00008B',
'darkcyan':             '#008B8B',
'darkgoldenrod':        '#B8860B',
'darkgray':             '#A9A9A9',
'darkgreen':            '#006400',
'darkkhaki':            '#BDB76B',
'darkmagenta':          '#8B008B',
'darkolivegreen':       '#556B2F',
'darkorange':           '#FF8C00',
'darkorchid':           '#9932CC',
'darkred':              '#8B0000',
'darksalmon':           '#E9967A',
'darkseagreen':         '#8FBC8F',
'darkslateblue':        '#483D8B',
'darkslategray':        '#2F4F4F',
'darkturquoise':        '#00CED1',
'darkviolet':           '#9400D3',
'deeppink':             '#FF1493',
'deepskyblue':          '#00BFFF',
'dimgray':              '#696969',
'dodgerblue':           '#1E90FF',
'firebrick':            '#B22222',
'floralwhite':          '#FFFAF0',
'forestgreen':          '#228B22',
'fuchsia':              '#FF00FF',
'gainsboro':            '#DCDCDC',
'ghostwhite':           '#F8F8FF',
'gold':                 '#FFD700',
'goldenrod':            '#DAA520',
'gray':                 '#808080',
'green':                '#008000',
'greenyellow':          '#ADFF2F',
'honeydew':             '#F0FFF0',
'hotpink':              '#FF69B4',
'indianred':            '#CD5C5C',
'indigo':               '#4B0082',
'ivory':                '#FFFFF0',
'khaki':                '#F0E68C',
'lavender':             '#E6E6FA',
'lavenderblush':        '#FFF0F5',
'lawngreen':            '#7CFC00',
'lemonchiffon':         '#FFFACD',
'lightblue':            '#ADD8E6',
'lightcoral':           '#F08080',
'lightcyan':            '#E0FFFF',
'lightgoldenrodyellow': '#FAFAD2',
'lightgreen':           '#90EE90',
'lightgray':            '#D3D3D3',
'lightpink':            '#FFB6C1',
'lightsalmon':          '#FFA07A',
'lightseagreen':        '#20B2AA',
'lightskyblue':         '#87CEFA',
'lightslategray':       '#778899',
'lightsteelblue':       '#B0C4DE',
'lightyellow':          '#FFFFE0',
'lime':                 '#00FF00',
'limegreen':            '#32CD32',
'linen':                '#FAF0E6',
'magenta':              '#FF00FF',
'maroon':               '#800000',
'mediumaquamarine':     '#66CDAA',
'mediumblue':           '#0000CD',
'mediumorchid':         '#BA55D3',
'mediumpurple':         '#9370DB',
'mediumseagreen':       '#3CB371',
'mediumslateblue':      '#7B68EE',
'mediumspringgreen':    '#00FA9A',
'mediumturquoise':      '#48D1CC',
'mediumvioletred':      '#C71585',
'midnightblue':         '#191970',
'mintcream':            '#F5FFFA',
'mistyrose':            '#FFE4E1',
'moccasin':             '#FFE4B5',
'navajowhite':          '#FFDEAD',
'navy':                 '#000080',
'oldlace':              '#FDF5E6',
'olive':                '#808000',
'olivedrab':            '#6B8E23',
'orange':               '#FFA500',
'orangered':            '#FF4500',
'orchid':               '#DA70D6',
'palegoldenrod':        '#EEE8AA',
'palegreen':            '#98FB98',
'paleturquoise':        '#AFEEEE',
'palevioletred':        '#DB7093',
'papayawhip':           '#FFEFD5',
'peachpuff':            '#FFDAB9',
'peru':                 '#CD853F',
'pink':                 '#FFC0CB',
'plum':                 '#DDA0DD',
'powderblue':           '#B0E0E6',
'purple':               '#800080',
'red':                  '#FF0000',
'rosybrown':            '#BC8F8F',
'royalblue':            '#4169E1',
'saddlebrown':          '#8B4513',
'salmon':               '#FA8072',
'sandybrown':           '#FAA460',
'seagreen':             '#2E8B57',
'seashell':             '#FFF5EE',
'sienna':               '#A0522D',
'silver':               '#C0C0C0',
'skyblue':              '#87CEEB',
'slateblue':            '#6A5ACD',
'slategray':            '#708090',
'snow':                 '#FFFAFA',
'springgreen':          '#00FF7F',
'steelblue':            '#4682B4',
'tan':                  '#D2B48C',
'teal':                 '#008080',
'thistle':              '#D8BFD8',
'tomato':               '#FF6347',
'turquoise':            '#40E0D0',
'violet':               '#EE82EE',
'wheat':                '#F5DEB3',
'white':                '#FFFFFF',
'whitesmoke':           '#F5F5F5',
'yellow':               '#FFFF00',
'yellowgreen':          '#9ACD32'}

다음과 같이 구성 할 수 있습니다.

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.colors as colors
import math


fig = plt.figure()
ax = fig.add_subplot(111)

ratio = 1.0 / 3.0
count = math.ceil(math.sqrt(len(colors.cnames)))
x_count = count * ratio
y_count = count / ratio
x = 0
y = 0
w = 1 / x_count
h = 1 / y_count

for c in colors.cnames:
    pos = (x / x_count, y / y_count)
    ax.add_patch(patches.Rectangle(pos, w, h, color=c))
    ax.annotate(c, xy=pos)
    if y >= y_count-1:
        x += 1
        y = 0
    else:
        y += 1

plt.show()

1
답을 주셔서 감사합니다. 정확히 내가 찾던 것이 었습니다. @Joe Kington의 의견과 함께 거의 모든 기초가 다루어 져 있다고 생각합니다.
TC Proctor

여기에서도 RGB 값을 찾을 수 있습니다 : flask.sagenb.org/src/plot/colors.py
pceccon

온라인으로 명명 된 색상의 시각적 목록을 간단히 보려면 matplotlib.org/examples/color/named_colors.html
BallpointBen


10

플롯에 사용할 전체 색상 목록을 얻으려면 :

import matplotlib.colors as colors
colors_list = list(colors._colors_full_map.values())

따라서 다음과 같이 빠르게 사용할 수 있습니다.

scatter(X,Y, color=colors_list[0])
scatter(X,Y, color=colors_list[1])
scatter(X,Y, color=colors_list[2])
...
scatter(X,Y, color=colors_list[-1])

이전 답변에없는 내용은 추가되지 않습니다.
TC Proctor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.