Juliaで行こう! 〜Plots編〜
いっぱいあるのよ
前回も言いましたが、専用機であるJulia(笑)は、グラフ描画向けのPackageも結構ございまして。
ただ、ご多分に漏れず、当方の環境依存で、Installできない代物もあります。
そういうことからではないのでしょうが、描画する部分をBackEnd、Dataの処理やデザインに相当する部分をFrontEndと切り分けをしまして、そのFrontEndを共通化して、好みのBackEndを使用するというPackageがあります。
「Plots」というものです。Plotってつくので、いろんな意味で頭の中が混乱しましたけど。
BackEnds
さて、描画を担うPackageも、それ単体で使用可能なものですので、切り分けなく使用するのもありかと思います。機種等が変わった場合、上手くInstallできないものもありますので、そういう部分を念頭において、判断するのがよいと思います。
- PyPlot
- Gadfly
- GR
- Plotly
- InspectDR
ここには、他にもありますが、すでに使用できないものや、JuliaのVersionが古いものをBaseにしているので、ご注意ください。 「PyPlot」はTk、「GR」はQt、「Plotly」はBrowser、「InspectDR」はGtk+。「Gadfly」は、手元のJulia-1.1-DEV on F28ではBuild Errorとなりましたので、省きますね。(最新Branchは試していないので)
使ってみる前に
for i in linspace(0, 2pi, 100)
という記述があります。0.7以降は、このlinspace()関数はなくて、上記と同じように、0.7以降で記述をしようとすると、
for i in range(0, stop=2pi, length=100)
と書き直す必要があります。
Package Install
(v1.1) pkg> add Plots
いつものように、Installします。
さて、使ってみよう!
BackEndを決める必要があります。
julia> using Plots
julia> backends()
9-element Array{Symbol,1}:
:pyplot
:unicodeplots
:plotly
:plotlyjs
:gr
:glvisualize
:pgfplots
:inspectdr
:hdf5
julia> backend_name()
:none
「backends()」関数は、使用可能なBackEndを示し、 「backend_name()」は、現状設定されているBackEndを示しています。現状、未設定(none)です。
ただし、それぞれは個別のPackageですので、それぞれaddする必要があります。(Errorでますので。。。)
まず、BackEndを設定しなければなりません。PyPlotにしてみましょう。
julia> pyplot()
Plots.PyPlotBackend()
julia> backend_name()
:pyplot
これでBackEndは決まりました。
julia> x = [ i for i in -5:5 ]
...
julia> y = [ i^3 for i in -5:5 ]
...
julia> plot(x, y)
曲線が描画されたことでしょう。BackEndを切り替えてみます。GRにしてみます。
julia> gr()
Plots.GRBackend()
julia> plot(x ,y)
Plotlyにしてみます。
julia> plotly()
Plots.PlotlyBackend()
julia> plot(x ,y)
plotly()の場合、plot()を実行した後、Promptに文字が出力されるようですが、これは。。。(消せるかな。調査要)
InspectDRはどうでしょう。
julia> inspectdr()
Plots.InspectDRBackend()
julia> plot(x,y)
なるほど。ここまできますと、もはや好みの問題に近くなってくるんじゃないかと。
後、機能的にどこまでできるか?というお話になろうかと思います。
Laughing Man
(v1.1) pkg> add UnicodePlots
julia> unicodeplots()
Plots.UnicodePlotsBackend()
julia> plot(x ,y)
プププ。
コメント
コメントを投稿