2019年11月2日土曜日

Makie.jl

Juliaのパッケージ Grassmann.jl がリニューアルされたというニュースが伝わってきたので,早速調べてみたら, Makie.jl を用いたベクトル場の流線表示の図形が載っていた。Makieは日本語の蒔絵に由来してネーミングされた,GPUを用いる高機能なjulia用グラフィックスのパッケージのようだ。

さっそく,Makie.jlをPkg.add("Makie") してみたがなかなかうまくいかない。そもそも例題が実行できないのだ。あの物性理論の永井祐紀さんが,「Juliaで綺麗なプロットを作る:Makie.jlのインストールと使い方」という記事を2018年12月に書いていたので,早速試してみた。

まず,AbstractPlotting.jlとMakie.jl と GLMakie.jl をインストールせよとある。そうなのか。
サンプルはすべて,FileIO.jl を使って,save("filename.png", scene)としている。そうなのか。ちなみに,ファイルに保存せずに直接画面に出力しようとすると,No renderer could be found for output. It has the following MIME types: というエラーが出てしまう。

とりあえず,指示に従うと,サンプルファイルはほぼ再現できたが,残念ながら,minimum( ) があるものはすべて,収束しないエラーで挫折してしまった。あと,streamplotの中のvectorfieldやlinesの中のpointなどがないといわれる。何が足りないのか?

成功した例は次のようなもの。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
using AbstractPlotting

 x = range(0, stop = 2pi, length = 80)
 f1(x) = sin.(x)
 f2(x) = exp.(-x) .* cos.(2pi*x)
 y1 = f1(x)
 y2 = f2(x)

 scene = lines(x, y1, color = :blue)
 scatter!(scene, x, y1, color = :red, markersize = 0.1)

 lines!(scene, x, y2, color = :black)
 scatter!(scene, x, y2, color = :green, marker = :utriangle, markersize = 0.1)
 save("graph.png",scene)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

図 Makieを用いた関数のプロットの例



0 件のコメント: