logo

줄리아 Plots에서 팔레트 사용하는 법 📂줄리아

줄리아 Plots에서 팔레트 사용하는 법

설명

팔레트palette란, 물감을 미리 짜놓은 판을 말한다. 이것을 수학적으로 설명해보면 '색들의 집합', '색들의 수열' 정도라 할 수 있겠다. 한 그림에 그래프를 여러개 그릴 땐 서로 다른 색으로 구분하는 것이 가장 일반적인 방법인데, 이럴 때 사용하기 위해 줄리아에서는 여러 색상을 모아놓은 ColorPalette라는 타입이 구현되어있다. 색들의 벡터라고 이해하면 편하다. 실제로 기본 팔레트인 :default을 불러와보면 엄청 복잡해보이지만, 속을 들여다보면 그냥 색들의 벡터이다.

히트맵을 그릴 땐 팔레트가 아니라 그래디언트를 사용한다.

julia> using Plots

julia> palette(:default)
ColorPalette(ColorSchemes.ColorScheme{Vector{RGB{Float64}}, String, String}(RGB{Float64}[RG
B{Float64}(0.0,0.6056031611752245,0.9786801175696073), RGB{Float64}(0.8888735002725198,0.43
564919034818994,0.2781229361419438), RGB{Float64}(0.2422242978521988,0.6432750931576305,0.3
044486515341153), RGB{Float64}(0.7644401754934356,0.4441117794687767,0.8242975359232758), R
GB{Float64}(0.6755439572114057,0.5556623322045815,0.09423433626639477), RGB{Float64}(4.8211
81644776295e-7,0.6657589812923561,0.6809969518707945), RGB{Float64}(0.930767491919665,0.367
4771896571412,0.5757699667547829), RGB{Float64}(0.7769816661712932,0.5097431319944513,0.146
4252569555497), RGB{Float64}(3.8077343661790943e-7,0.6642678029460116,0.5529508754522481), 
RGB{Float64}(0.558464964115081,0.5934846564332882,0.11748125233232104), RGB{Float64}(5.9476
23898072685e-7,0.6608785231434254,0.7981787608414297), RGB{Float64}(0.6096707676128648,0.49
918492100827777,0.9117812665042642), RGB{Float64}(0.3800016049820351,0.5510532724353506,0.9
665056985227146), RGB{Float64}(0.942181647954218,0.37516423354097583,0.4518168202944593), R
GB{Float64}(0.8684020893043971,0.3959893639954845,0.7135147524811879), RGB{Float64}(0.42314
674364630817,0.6224954944199981,0.19877060252130468)], "", ""))

julia> palette(:default).colors.colors
16-element Array{RGB{Float64},1} with eltype RGB{Float64}:
 RGB{Float64}(0.0,0.6056031611752245,0.9786801175696073)
 RGB{Float64}(0.8888735002725198,0.43564919034818994,0.2781229361419438)
 RGB{Float64}(0.2422242978521988,0.6432750931576305,0.3044486515341153)
 RGB{Float64}(0.7644401754934356,0.4441117794687767,0.8242975359232758)
 RGB{Float64}(0.6755439572114057,0.5556623322045815,0.09423433626639477)
 RGB{Float64}(4.821181644776295e-7,0.6657589812923561,0.6809969518707945)
 RGB{Float64}(0.930767491919665,0.3674771896571412,0.5757699667547829)
 RGB{Float64}(0.7769816661712932,0.5097431319944513,0.1464252569555497)
 RGB{Float64}(3.8077343661790943e-7,0.6642678029460116,0.5529508754522481)
 RGB{Float64}(0.558464964115081,0.5934846564332882,0.11748125233232104)
 RGB{Float64}(5.947623898072685e-7,0.6608785231434254,0.7981787608414297)
 RGB{Float64}(0.6096707676128648,0.49918492100827777,0.9117812665042642)
 RGB{Float64}(0.3800016049820351,0.5510532724353506,0.9665056985227146)
 RGB{Float64}(0.942181647954218,0.37516423354097583,0.4518168202944593)
 RGB{Float64}(0.8684020893043971,0.3959893639954845,0.7135147524811879)
 RGB{Float64}(0.42314674364630817,0.6224954944199981,0.19877060252130468)

함수 palette()에 이미 정의된 팔레트의 심볼을 입력하거나, 색과 길이를 입력하여 팔레트 불러오거나 만들 수 있다. 도표를 그릴 때는 plot() 함수의 palette 키워드에 대입하면 된다.

코드

심볼

palette(심볼)과 같이 사용한다. 기본 팔레트의 심볼은 :default이고, 색상은 다음과 같다.

한 그림에 여러개의 그래프를 그리면 위의 색깔이 순서대로 적용된다. 색을 다 쓴 다음에는 다시 처음부터 순환한다.

using Plots

x = 0:0.01:2π
plot([x -> sin(x - a) for a in range(0, π, length = 5)], 0, 2π)

Plots.jl에 미리 정의되어있는 팔레트와 그래디언트는 공식 문서에서 확인할 수 있다. (패키지 ColorSchemes.jl공식 문서에서 더 다양한 팔레트와 그래디언트를 찾아볼 수 있다.)

:rainbow로 그려보면,

palette(:rainbow)

plot([x -> sin(x - a) for a in range(0, π, length = 5)], 0, 2π,
    palette = palette(:rainbow))

직접 정의

palette([시작색, 끝색], 길이)로 직접 팔레트를 정의할 수 있다. 혹은 range()를 써서 보간할 수도 있다.

palette([:blue, :orange], 10)

palette([RGB(0.5, 0.6, 0.2), RGB(1.0, 0.2, 0.9)], 10)

환경

  • OS: Windows11
  • Version: Julia 1.9.4, Plots v1.39.0

같이 보기