matplotlib의 명명된 색상
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')
하지만 위의 목록에는 없습니다.사용할 수 있는 명명된 색상의 완전한 목록을 아는 사람 있나요?
사용하고 싶은 색상의 이름을 자꾸 잊어버리고, 이 질문으로 돌아옵니다=)
앞의 답변은 훌륭하지만, 투고된 이미지에서 사용 가능한 색상의 개요를 파악하는 것은 조금 어렵다고 생각합니다.같은 색상으로 묶는 것을 선호하기 때문에 위의 코멘트에 기재되어 있는 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 크라우드 소싱된 색상 이름을 사용할 수 있습니다.
plt.plot([1,2], lw=4, c='xkcd:baby poop green')
이제 수많은 이름 있는 색상에 접근할 수 있습니다!
타블로
기본 Tableau 색상은 '탭:' 접두사를 통해 matplotlib에서 사용할 수 있습니다.
plt.plot([1,2], lw=4, c='tab:green')
10가지 색상이 있습니다.
HTML
HTML 16진수 코드로 색상을 표시할 수도 있습니다.
plt.plot([1,2], lw=4, c='#8f9805')
이것은 명명된 색상이라기보다는 RGB 태플을 지정하는 것과 비슷하며(16진수 코드가 문자열로 전달된다는 점 이외에는) 1600만 색상의 이미지는 포함하지 않습니다.
자세한 내용은 matplotlib 색상 매뉴얼 및 사용 가능한 색상을 지정하는 소스 파일을 참조하십시오.
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()
BoshWash의 답변과 더불어 BoshWash의 코드에 의해 생성된 사진은 다음과 같습니다.
그림에 사용할 전체 색상 목록을 가져오려면:
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])
대부분의 색상을 가진 이 사전을 사용할 수 있습니다. z = { '검은색' : (0,0,0), '흰색' : (255,255,255), '빨간색' : (255,0,0), '라임' : (0,255,0), '노란색' : (255,0,05,0cy)' ,rple' : (128,0,128), 'Teal' : (0,128), 'Navy' : (0,0,128) }
언급URL : https://stackoverflow.com/questions/22408237/named-colors-in-matplotlib
'source' 카테고리의 다른 글
Vue.js 또는 React 컴포넌트를 사용하는 이유 (0) | 2022.11.26 |
---|---|
PHP Associative Arrays가 주문되었습니까? (0) | 2022.11.26 |
JavaScript: 객체 이름 변경 키 (0) | 2022.11.25 |
Larabel: 업데이트 시 고유 검증 (0) | 2022.11.25 |
MySQL Workbench에서 열 플래그는 무엇을 의미합니까? (0) | 2022.11.25 |