줄리아 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