Python/matplotlib

[python matplotlib] pyplot 색상 지정

언제나 휴일 빅데이터 언제나휴일 2020. 11. 20. 11:30
반응형

안녕하세요. 언제나휴일입니다.

이번에는 pyplot에서 색상을 지정하는 방법을 알아봅시다.

1. 디폴트 색상

plot함수를 사용하면 10가지 디폴트 색상을 순차적으로 사용합니다.

import matplotlib.pyplot as plt
ys_str=[]
for i in range(1,30):
    plt.plot([i,i])
    ys_str.append(str(i))
plt.yticks(range(1,30),ys_str)
plt.title('default color')
plt.show()

디폴트 색상

2. 배경색 지정하기

먼저 gca함수를 호출하여 axes 개체를 얻어돕니다.

axes 개체의 set_facecolor 메서드에 원하는 배경색을 입력합니다.

plt.plot(1,1)
ax = plt.gca()
ax.set_facecolor('violet')
plt.title('background color is violet')
plt.show()

배경색을 violet으로 지정

3. 기본 색상 지정하기

기본 색상은 'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'입니다.

plot 함수에 기본 색상에 해당하는 문자를 전달합니다.

ytl=['b', 'g', 'r', 'c', 'm', 'y', 'k', 'w']
for y in range(1,9):
    plt.plot([y,y],color=ytl[y-1])
plt.yticks(range(1,9),ytl)
plt.axis([0, 1, 0, 9]) 
ax = plt.gca()
ax.set_facecolor('violet')
plt.title("basic color(back:violet)")
plt.show()

기본 색상, 배경색은 violoet

4. Hexa코드 혹은 이름으로 색상 지정하기

색상을 Hexa코드나 이름으로 지정할 수도 있습니다.

ytl2=['#FF0000', 'gold', 'coral', 'maroon', 'salmon', 'pink', 'aqua', 'orchid']
for y in range(1,9):
    plt.plot([y,y],color=ytl2[y-1])
plt.yticks(range(1,9),ytl2)
plt.axis([0, 1, 0, 9]) 
plt.title("set color by hexacode or name")
plt.show()

헥사 코드나 이름으로 색상 지정

다음은 matplotlib에서 자주 사용하는 색상표입니다.

색상표(matplotlib 사이트에서 발췌)

5. 전체 코드

import matplotlib.pyplot as plt
ys_str=[]
for i in range(1,30):
    plt.plot([i,i])
    ys_str.append(str(i))
plt.yticks(range(1,30),ys_str)
plt.title('default color')
plt.show()

plt.plot(1,1)
ax = plt.gca()
ax.set_facecolor('violet')
plt.title('background color is violet')
plt.show()

ytl=['b', 'g', 'r', 'c', 'm', 'y', 'k', 'w']
for y in range(1,9):
    plt.plot([y,y],color=ytl[y-1])
plt.yticks(range(1,9),ytl)
plt.axis([0, 1, 0, 9]) 
ax = plt.gca()
ax.set_facecolor('violet')
plt.title("basic color(back:violet)")
plt.show()

ytl2=['#FF0000', 'gold', 'coral', 'maroon', 'salmon', 'pink', 'aqua', 'orchid']
for y in range(1,9):
    plt.plot([y,y],color=ytl2[y-1])
plt.yticks(range(1,9),ytl2)
plt.axis([0, 1, 0, 9]) 
plt.title("set color by hexacode or name")
plt.show()
반응형