logo

ジュリアプロットでグラフ要素の色を指定する方法 📂ジュリア

ジュリアプロットでグラフ要素の色を指定する方法

定理

Plots.jlでは、グラフの各構成要素の色を指定するキーワードは以下の通りだ。

キーワード機能
markercolor, mcマーカー内部の色を指定
markerstrokecolor, mscマーカーの縁の色を指定
linecolor, lc線の色を指定
fillcolor, fc面積の色を指定
seriescolor, cすべての要素の色を指定
キーワード機能
markeralpha, ma, マーカー内部の透明度を指定
markerstrokealpha, msa, msαマーカーの縁の透明度を指定
linealpha, la, 線の透明度を指定
fillalpha, fa, 面積の透明度を指定
seriesalpha, a, αすべての要素の透明度を指定

Plots.jlでは、変更可能な対象は点、線、面の三つだ。それぞれの色を指定するキーワード引数は、markercolor(=mc)linecolor(=lc)、そしてfillcolor(=fc)である。これらのキーワードで指定された属性は互いに影響を与えないので、線グラフを描いてmc = :redと入力しても、線の色が赤になることはない。実際にp = plot(rand(10), mc = :red)のプロパティを確認すると、以下のようになる。

julia> p = plot(rand(10), mc = :red)

julia> p.series_list[1][:linecolor]
RGBA{Float64}(0.0,0.6056031611752245,0.9786801175696073,1.0)

julia> p.series_list[1][:markercolor]
RGBA{Float64}(1.0,0.0,0.0,1.0)

プロットされた線グラフの線色は依然としてデフォルトの色であり、赤ではない。

だから、複数のサブプロットを描き、上記の三つのキーワードで色を指定すると、それぞれが適用される。点(マーカー)を紫色の:purple、線をダークグリーンの:darkgreen、面をスカイブルーの:skyblueで色付けすると、以下のようになる。

st = [:line :scatter :barhist :steppre :scatterhist :bar]

x = rand(20)
y = repeat(x, outer = (1, length(st)))

plot(y, seriestype = st, layout = 6, 
    mc = :purple,
    lc = :darkgreen,
    fc = :skyblue
)

透明度

色の透明度を決定するキーワードは、色を指定するキーワード名でcolorをalphaに置き換えたものだ。また、ギリシャ文字のαを直接使用してもよい。

または、RGBAのように、透明度が含まれる色コードを、色を指定するキーワードに入力してもよい。

plot(rand(20, 3), layout = (3,1), seriestype = [:scatter :line :bar],
    mc = :red,
    lc = :green,
    fc = :blue
)

plot(rand(20, 3), layout = (3,1), seriestype = [:scatter :line :bar],
    markeralpha = 0.5, mc = :red,
    la = 0.5,          lc = :green,
    fα = 0.5,         fc = :blue
)

環境

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

参考