본문 바로가기
판다스/판다스 팁

matplotlib의 컬러맵에서 색상을 지정해 그래프를 그리는 방법

by 김판다t 2024. 2. 13.

예제 데이터

import pandas as pd
data = {'A': {'buy': 0.55, 'sell': 0.4}, 
        'B': {'buy': 0.2, 'sell': 0.45},
        'C': {'buy': 0.3, 'sell': 0.35}}
df = pd.DataFrame(data)

 

 

df:

 

 

 

 

컬러맵 'RdBu'를 사용해 이 데이터 셋으로 그래프를 그려 보겠습니다.

 

matplotlib의 다양한 컬러맵은 다음 링크에서 확인할 수 있습니다.

 

https://matplotlib.org/stable/users/explain/colors/colormaps.html

 

Choosing Colormaps — Matplotlib 3.8.2 documentation

Choosing Colormaps Matplotlib has a number of built-in colormaps accessible via matplotlib.colormaps. There are also external libraries that have many extra colormaps, which can be viewed in the Third-party colormaps section of the Matplotlib documentation

matplotlib.org

 

 

 

# 컬러맵 RdBu로 그래프 그리기
df.plot(kind='bar', colormap='RdBu', width=.9)

 

 

 

 

 

컬러맵에서 특정 색상을 지정하고 싶다면?!

 

 

먼저 RdBu 컬러맵을 확인합니다. seaborn 라이브러리가 컬러맵을 확인하기에 좋습니다.

 

RdBu 컬러맵에서 20개의 색상을 샘플로 뽑아보겠습니다.

 

import seaborn as sns

# RdBu 팔레트에서 색상 20개 불러오기
c = sns.color_palette("RdBu", 20)

 

c:

 

 

 

이 중에서 원하는 색상을 사용해 그래프를 그립니다.

 

첫 번째 색상과 4번째 색상 7번째 색상을 사용해 그래프를 그려보겠습니다.

 

변수 c에서 0, 3, 6을 인덱싱해서 plot 함수의 매개변수 color에 입력하면 됩니다.

 

 

df.plot(kind='bar', color=[c[0], c[3], c[6]], width=.9)

 

 

다만 색상이 많아지면 인덱싱은 다소 번거로우니 슬라이싱으로 0부터 3칸마다 추출하는 것이 더 편할 것입니다.

df.plot(kind='bar', color=c[::3], width=.9)

 

 

 

 

'RdBu' 컬러맵에서 특정 색상을 지정해서  그래프를 그렸습니다.