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)

プププ。

コメント

このブログの人気の投稿

Tabulatorで行こう! 〜ダイバー編〜

Tabulatorで行こう! 〜違うじゃん編〜

Fedoraで行こう! 〜音声合成pyttsx3編〜