[TIL] Plotly 색상 팔레트 변경하기

오수희·2020년 11월 22일
2

데이터분석

목록 보기
2/4
post-thumbnail
post-custom-banner

주피터노트북으로 이런 저런 데이터를 볼 때, 바로바로 예쁜 EDA가 가능한 Plotly를 좋아한다. 이전에 게임 데이터 분석 관련 글에서도 시각화 툴은 Plotly였다. 그런데 아직 익히지 못해 아쉬운 점이 하나 있었는데, 그래프 색을 바꾸는 부분이었다.

디폴트로 주어지는 색상이 이렇지만 않았어도 크게 생각을 안했을 것도 같다.

(기본 색상 팔레트가 이것인데, 어째서 높을수록 노랑색이야.. 수치 낮은 애들이 굉장히 작지만 심각해보임..)

데이터 시각화 전문가도 위와 같은 컬러 구성의 그래프에 관해 좋은 구성이 아니라고 언급한 적이 있다. 그래서 작업을 하는 도중 오늘만큼은 저 색깔 부분을 정복하리라.. 생각하였다.

Plotly 막대 그래프 코드만 살짝 짚고 넘어가기

(미래의 당신(나)을 위해..)

px.bar(df_0233,
	x='date_diff', 
	y='donation_no', 
	color='amount',
	height=400)
  • 일단 px.는 plotly 라이브러리를 사용한다는 의미다. (import.. 더 말 안한다)
  • bar는 라이브러리에 있는 다양한 기능 중에서 바 그래프를 그리겠다는 것
  • 괄호 안 df_0233는 바 그래프를 적용할 테이블이다.
  • x, y축에 대한 자세한 설명은 생락한다.
  • 여기서의 color는 어떤 컬럼으로 color를 표현할 것이냐의 의미다. 컬러 팔레트랑은 무상관이다.
  • height로 그래프 높이를 제한했다. (디폴트는 저것의 두 배 정도 된다)

Here comes the solution

color_continuous_scale='Greens'

바로 요 코드를 괄호 안 다른 요소들처럼 넣어주면, 아래와 같이 그래프 색이 바뀐다.
(사실 이것도 amount가 작은 애들이 거의 안 보일 지경이라 좋은 선택은 아닌 것 같다...)

px.bar(df_0233,
	x='date_diff', 
	y='donation_no', 
	color='amount',
    	color_continuous_scale='Greens',
	height=400)

물론 이 Greens라는 컬러 팔레트는 내가 만든 것이 아니고, 미리 설정되어 있는 것이다. 그럼 그 팔레트는 어디에 있냐가 궁금할 텐데.. 바로 이곳이다.

Built-in Continuous Color Scales in Python
연속형 데이터를 시각화할 때 활용할 수 있는 컬러셋이 여럿 소개되어 있다.

예를 들어, 위 코드에서의 'Greens' 대신 아래와 같은 컬러셋명도 활용할 수 있다.

aggrnyl     agsunset    blackbody   bluered     blues       blugrn      bluyl       brwnyl
bugn        bupu        burg        burgyl      cividis     darkmint    electric    emrld
gnbu        greens      greys       hot         inferno     jet         magenta     magma
mint        orrd        oranges     oryel       peach       pinkyl      plasma      plotly3
pubu        pubugn      purd        purp        purples     purpor      rainbow     rdbu
rdpu        redor       reds        sunset      sunsetdark  teal        tealgrn     viridis
ylgn        ylgnbu      ylorbr      ylorrd      algae       amp         deep        dense
gray        haline      ice         matter      solar       speed       tempo       thermal
turbid      armyrose    brbg        earth       fall        geyser      prgn        piyg
picnic      portland    puor        rdgy        rdylbu      rdylgn      spectral    tealrose
temps       tropic      balance     curl        delta       edge        hsv         icefire
phase       twilight    mrybm       mygbm

이상이다. 참 쉽다?
너무 고마워하지 않아도 된다.


추가로 참고할 자료(Plotly 가이드)

profile
프로덕트 마케터인데 이제 데이터를 좀 곁들인.
post-custom-banner

2개의 댓글

comment-user-thumbnail
2020년 11월 22일

온 마음을 다해 고마움을 드립니다

1개의 답글