logo

Julia Plotsで各サブプロットごとにグラフの色を指定する方法 📂ジュリア

Julia Plotsで各サブプロットごとにグラフの色を指定する方法

概要

サブプロットごとにグラフの色を指定する3つの方法を紹介する。グラフ要素に色を指定する方法はここを参照してください。

方法 1

サブプロットのグラフの色を指定する最初の方法は、各サブプロットを定義するときにあらかじめ色を指定することです。Juliaでは、1枚の絵が各オブジェクトであるため、属性を異にする絵を複数定義してから、それらを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

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

3つ目の方法は、全体のプロットを定義した後に、各サブプロットのプロパティ値を直接変更することです。プロパティ.series_listは、各サブプロットのシリーズ属性情報を含む辞書のベクトルです。すなわち、p.series_list[1]は、最初のサブプロットのシリーズ属性辞書を返します。この辞書に: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

参照