PlotlyJSを使って、直感的に動く美しいグラフを描いていきましょう。
PlotlyJSについて、詳しくは公式サイトを見ていただけるといいと思います。
今回は、グリングリン動く3DのグラフをJuliaとPlotlyJSを使って描画していきます。
環境構築
まずは、パッケージを含む環境構築をしていきましょう。
公式サイトでは、PlotlyJSのパッケージをインストールしてくださいと書いてあります。
しかし、実はそれだけでは動きません。
WebIO.jlっていうパッケージも入れておかないと、エラーが出ます。
using Conda
Conda.pip_interop(true)
Conda.pip("install", "webio_jupyter_extension")
これをインストールした後PlotlyJSをインストール
パッケージモードだと
(v1.6) pkg> add PlotlyJS
JupyterNotebookなら
using Pkg
Pkg.add("PlotlyJS")
これで、環境構築は完了です。
2Dのデモをやってみよう
PlotlyJSの環境構築が完了したので、早速使ってみましょう。
まずは、公式サイトのチュートリアルを一個触ってみましょう。
using PlotlyJS
plot(rand(10, 4))
こんな感じで、ぐりぐりと動きます。
3Dもぐりぐり動かしてみよう!
では、3Dのグラフもぐりぐりやってみましょ!
微分方程式をルンゲクッタ法で求めたものを使って、3次元グラフを描画してぐりぐり動かしてみます。
今回は、ローレンツアトラクタの描画を行ってみます。。ローレンツ方程式のルンゲクッタ法で求める方法については、
この記事を見てください。
ローレンツアトラクタを描画してみましょう
using PlotlyJS,DataFrames
include("rk4.jl")
a = 10.0;
b=28.0;
c =8/3;
ic = (1.1,0.5,0.5)
x,y,z =rungekutta(5000,0.01,ic);
df = DataFrame(X=x,Y=y,Z=z);
plot(df, x=:X, y=:Y, z=:Z, mode="lines",type="scatter3d")
ぐりんぐりん動きます。
拡大や縮小、そして、視点移動、かなりスムーズに動きます。
まとめ
今回は、自由度の高いぐりぐり動かせるグラフ描画パッケージPlotlyJSを使ってみました。
JuliaだとPlotsっていうパッケージがあって、それで多くのグラフがきれいに描画できるんですが、こうやって、ぐりぐりマウスで動かせたりするのも、直感的にデータを見るときに活用できそうですね。
そして面白い。
コメント