ジュリアプロットでパレットを使用する方法
説明
パレットとは、予め絞り出された絵の具がおかれている板のことを指します。数学的に説明すると、「色の集合」や「色の数列」と言えるでしょう。1つの絵に複数のグラフを描く際、最も一般的な方法は異なる色を使って区別することですが、その目的のためにJuliaでは、様々な色を集めたColorPalette
というタイプが実装されています。色のベクトルとして理解すると便利です。実際に、デフォルトのパレット:default
を読み込んでみると、とても複雑に見えますが、中を見れば、ただの色のベクトルです。
ヒートマップを描くときは、パレットではなくグラデーションを使用します。
julia> using Plots
julia> palette(:default)
ColorPalette(ColorSchemes.ColorScheme{Vector{RGB{Float64}}, String, String}(RGB{Float64}[RG
B{Float64}(0.0,0.6056031611752245,0.9786801175696073), RGB{Float64}(0.8888735002725198,0.43
564919034818994,0.2781229361419438), RGB{Float64}(0.2422242978521988,0.6432750931576305,0.3
044486515341153), RGB{Float64}(0.7644401754934356,0.4441117794687767,0.8242975359232758), R
GB{Float64}(0.6755439572114057,0.5556623322045815,0.09423433626639477), RGB{Float64}(4.8211
81644776295e-7,0.6657589812923561,0.6809969518707945), RGB{Float64}(0.930767491919665,0.367
4771896571412,0.5757699667547829), RGB{Float64}(0.7769816661712932,0.5097431319944513,0.146
4252569555497), RGB{Float64}(3.8077343661790943e-7,0.6642678029460116,0.5529508754522481),
RGB{Float64}(0.558464964115081,0.5934846564332882,0.11748125233232104), RGB{Float64}(5.9476
23898072685e-7,0.6608785231434254,0.7981787608414297), RGB{Float64}(0.6096707676128648,0.49
918492100827777,0.9117812665042642), RGB{Float64}(0.3800016049820351,0.5510532724353506,0.9
665056985227146), RGB{Float64}(0.942181647954218,0.37516423354097583,0.4518168202944593), R
GB{Float64}(0.8684020893043971,0.3959893639954845,0.7135147524811879), RGB{Float64}(0.42314
674364630817,0.6224954944199981,0.19877060252130468)], "", ""))
julia> palette(:default).colors.colors
16-element Array{RGB{Float64},1} with eltype RGB{Float64}:
RGB{Float64}(0.0,0.6056031611752245,0.9786801175696073)
RGB{Float64}(0.8888735002725198,0.43564919034818994,0.2781229361419438)
RGB{Float64}(0.2422242978521988,0.6432750931576305,0.3044486515341153)
RGB{Float64}(0.7644401754934356,0.4441117794687767,0.8242975359232758)
RGB{Float64}(0.6755439572114057,0.5556623322045815,0.09423433626639477)
RGB{Float64}(4.821181644776295e-7,0.6657589812923561,0.6809969518707945)
RGB{Float64}(0.930767491919665,0.3674771896571412,0.5757699667547829)
RGB{Float64}(0.7769816661712932,0.5097431319944513,0.1464252569555497)
RGB{Float64}(3.8077343661790943e-7,0.6642678029460116,0.5529508754522481)
RGB{Float64}(0.558464964115081,0.5934846564332882,0.11748125233232104)
RGB{Float64}(5.947623898072685e-7,0.6608785231434254,0.7981787608414297)
RGB{Float64}(0.6096707676128648,0.49918492100827777,0.9117812665042642)
RGB{Float64}(0.3800016049820351,0.5510532724353506,0.9665056985227146)
RGB{Float64}(0.942181647954218,0.37516423354097583,0.4518168202944593)
RGB{Float64}(0.8684020893043971,0.3959893639954845,0.7135147524811879)
RGB{Float64}(0.42314674364630817,0.6224954944199981,0.19877060252130468)
既に定義されたパレットのシンボルを入力するか、色と長さを入力してpalette()
関数でパレットを読み込んだり作ったりすることができます。図表を描くときは、plot()
関数のpalette
キーワードに代入すればOKです。
コード
シンボル
palette(シンボル)
のように使用します。デフォルトのパレットのシンボルは:default
で、色は以下の通りです。
1つの絵に複数のグラフを描くと、上記の色が順番に適用されます。色を使い切った後は、再び最初から循環します。
using Plots
x = 0:0.01:2π
plot([x -> sin(x - a) for a in range(0, π, length = 5)], 0, 2π)
Plots.jl
に予め定義されたパレットやグラデーションは、公式ドキュメントで確認できます。(パッケージColorSchemes.jl
の公式ドキュメントでも、より多様なパレットやグラデーションを見つけることができます。)
:rainbow
で描いてみると、
palette(:rainbow)
plot([x -> sin(x - a) for a in range(0, π, length = 5)], 0, 2π,
palette = palette(:rainbow))
直接定義
palette([開始色、終了色], 長さ)
で、直接パレットを定義することができます。また、range()
を使用して色を補間することもできます。
palette([:blue, :orange], 10)
palette([RGB(0.5, 0.6, 0.2), RGB(1.0, 0.2, 0.9)], 10)
環境
- OS: Windows11
- Version: Julia 1.9.4, Plots v1.39.0