JuliaでMakie (CairoMakie)を使う

Julia nativeの可視化ライブラリーには,Gadfly, Plots, Makieがある.僕は全てを使ってみたが一番図を細かく調整することが出来るライブラリーはMakieであった.特にCairoMakieは2Dのグラフに特化している.

以下の図は,GitHubでのStarの履歴を可視化したものだ.(Plotting in Julia with Makieより) Makieが急速にスター数を増やしている.それにはそれだけの理由がある.

Juliaをデータサイエンス用に使おうとして勉強し始めた人は,Julia Data Science のページを見てみよう.データサイエンスで有用なパッケージ,使い方がよくまとまっている.ここでも,可視化ライブラリーの一つとしてMakie (CairoMakie)が取り上げられている.

Makieの構造

Makieを調べ始めると混乱するのが様々な種類のMakieが存在することだ.現在,Makieはモノレポという開発形式を取っていて,複数の種類のバックエンドが一つのRepositoryで管理されている.

Makieはバックエンドにより強みが別れる.以下のバックエンドは全てMakieOrg/Makie.jl によって管理されている.注意点としては同名のGitHub repositoryも存在するが,それらはMakieOrg/Makie.jl に吸収され開発が停止している.

  • CairoMakie: 2Dに特化.データサイエンスや論文レベルの図を作成したければこれを用いること.
  • GLMakie: 2D, 3Dに強い.
  • WGLMakie: ウェブで綺麗な図が出力されるように開発されている.

また,Makieを補助するExtensionとして AlgebraOfGraphics.jl, Beautiful Makie, GraphMakie.jl, GeoMakie.jlがある.これらのパッケージは拡張パッケージとなっており別途インストールする必要がある.

本記事では,CairoMakieに焦点を当てて,インストールや情報の探し方について書く.

Makie, CairoMakieのインストール

]add CairoMakie
using CairoMakie

または,

using Pkg
Pkg.add("CairoMakie")

でインストールするように公式ドキュメントでは書いてある.

初めてインストールする方はこれで良い.だが,”Figure is not defined” という状態に陥る人がいると思う.これは,モノレポに移行する前のバージョンが古いMakieを用いている可能性がある.Juliaのパッケージマネージャーでは,開発が停止された古いパッケージ(“MakieLayout”や”AbstractPlotting”)をインストールしてしまうと,自動的に依存するパッケージ(“Makie”, “CairoMakie”)のバージョンを下げてしまうことがあるからだ.

そこで,僕が提唱するインストール方法は以下の通りだ.

まず,Juliaのバージョン,Makieのバージョンを確認する.

versioninfo()
Pkg.status()

次に,間違って古いパッケージを入れてしまった場合,それらをアンインストールする.また,MakieもCairoMakieもアンインストールする.

Pkg.rm("AbstractPlotting")
Pkg.rm("MakieLayout")
Pkg.rm("Makie")
Pkg.rm("CairoMakie")

次にMakieOrg/Makie.jlのRepositoryのReleasesを確認して,比較的新しいものをインストールする.

Pkg.add(Pkg.PackageSpec(;name="Makie", version="v0.19.1"))  #適宜変更.
Pkg.add("CairoMakie")

これで,新しいバージョンのCairoMakieがインストールされているはずだ.

CairoMakieのリーソース

注意点としては下手にGoogleで検索すると,モノレポに統合される前のパッケージの情報が出てくることがある.公式サイトから情報を見つける用に工夫すると良い.

公式サイトでみといた方が良いページ.

  • Makie Basic Tutorial : Makie全体のTutorialだがCairoMakieが使われている.
  • CairoMakie : CairoMakieのトップページ.目は通しておくぐらい.
  • Examples : Blocks & Widgets と Plotting functionsに自分が描きたい図が載ってないか確認する.

以下,やりたい図を作成するために調べて,有用だと思ったページ (全て公式サイト).

Legend

以下の公式サイトの説明が有用.

  • Legend : Makie,Example内のLegend説明ページ.
  • API, Legend : MakieのAPIページにあるLegendの欄.Legendのframeをオフにしたいとき,”framevisible”が実装されていることに気づいた.引数に何を指定できるか,APIから総合的に見に行った方が早いだろう.

Subplots

以下のサイト.

  • Makie Basic Tutorial : Subplotsに関して触れられていて一番シンプル.
  • GridLayout : Examplesの中にあるページ.特に,Subplotsに対してsupertitleを入れたい場合,Label(f[0,:], text="Supertitle", fontsize=50) のようにすると入れられる.

簡単だが,ここで終わる.この記事の要点としては次の3つ.

  • 可視化ツールのGadfly, Plots, Makieの中ではMakieが一番,細かく図を調整出来る.
  • Makieはモノレポに移行した影響で余計な情報がGoogleなどの検索サイトに転がっている. -> 公式サイトから常に探すようにする.
  • 各関数の引数を公式サイトのAPIから探す.細かい図の操作がどこまで出来るか把握する.

コメント

タイトルとURLをコピーしました