ジュリアプロットでグラフ要素の色を指定する方法
定理
Plots.jl
では、グラフの各構成要素の色を指定するキーワードは以下の通りだ。
キーワード | 機能 |
---|---|
markercolor , mc | マーカー内部の色を指定 |
markerstrokecolor , msc | マーカーの縁の色を指定 |
linecolor , lc | 線の色を指定 |
fillcolor , fc | 面積の色を指定 |
seriescolor , c | すべての要素の色を指定 |
キーワード | 機能 |
---|---|
markeralpha , ma , mα | マーカー内部の透明度を指定 |
markerstrokealpha , msa , msα | マーカーの縁の透明度を指定 |
linealpha , la , lα | 線の透明度を指定 |
fillalpha , fa , fα | 面積の透明度を指定 |
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