logo

줄리아 Plots에서 서브 플랏마다 그래프 색상 지정하는 법 📂줄리아

줄리아 Plots에서 서브 플랏마다 그래프 색상 지정하는 법

개요

서브 플랏마다 그래프의 색상을 지정하는 방법 세 가지를 소개한다. 그래프 요소에 색상을 지정하는 방법은 여기를 참고하라.

방법 1

서브 플랏의 그래프 색상을 지정하는 첫번째 방법은 각각의 서브 플랏을 정의할 때 미리 색상을 지정하는 것이다. 줄리아에서는 하나의 그림이 각각의 객체이기 때문에 속성을 서로 달리한 그림을 여러장 정의한 다음에 다시 하나의 플랏에 모으면 된다.

p₁ = plot(rand(10),    lc = :red)
p₂ = scatter(rand(10), mc = :blue)
p₃ = bar(rand(10),     fc = :green)

plot(p₁, p₂, p₃,
     layout = (3, 1),
     title = ["p₁" "p₂" "p₃"],
)

방법 2

두번째 방법은 서브 플랏들을 전체 플랏에 정의할 때 키워드 인수로 색깔들의 행벡터를 입력하는 것이다. 열벡터는 안되고 행벡터여야만 함에 주의하라.

p₄ = plot(rand(10))
p₅ = plot(rand(10))
p₆ = plot(rand(10))

plot(p₄, p₅, p₆,
     layout = (3, 1),
     linecolor = [:brown :purple :orange],
     title = ["p₄" "p₅" "p₆"],
)

방법 3

세번째 방법은 전체 플랏을 정의한 다음에, 각 서브 플랏의 프로퍼티(property) 값을 직접 바꾸는 것이다. 프로퍼티 .series_list는 각 서브플랏의 series attributes 정보를 담고있는 딕셔너리들의 벡터이다. 즉 p.series_list[1]은 첫번째 서브 플랏의 series attributes 딕셔너리를 반환한다. 이 딕셔너리에 :linecolor 키를 입력하여 그 밸류를 바꿔주면 첫번째 서브 플랏의 선 색깔이 바뀌는 것이다.

p₇ = plot(rand(10))
p₈ = scatter(rand(10))
p₉ = bar(rand(10))

p = plot(p₇, p₈, p₉,
        layout = (3, 1),
        title = ["p₇" "p₈" "p₉"],
)

p.series_list[1][:linecolor]   = :goldenrod1
p.series_list[2][:markercolor] = :olivedrab3
p.series_list[3][:fillcolor]   = :hotpink3

환경

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

같이 보기