Juliaで行こう! 〜PyPlot編〜

Julia-Nightly、Conflict起こしてて、Installできないっす。強制的って話もあるのですけどね。

多いのよね

JuliaがData特化型ということは、グラフ描画云々、という流れになります。その際、多いのは、Pyplotによるもの。Jupyterによるとも言うのでしょうけど。Gadflyも多かったのですが、FedoraちゃんにはInstallできなかったので。
気まぐれに、描画してみようなんて思ったので、PyPlotを使ってみることにしました。

Warningが出る

まずは、PackageのInstallから。

(v1.1) pkg> add PyPlot

続いて、Import。

julia> using PyPlot
WARNING: No working GUI backend found for matplotlib

とのたまう。はて?

julia> using PyPlot
WARNING: No working GUI backend found for matplotlib
julia> figure()
PyPlot.Figure(PyObject <Figure size 640x480 with 0 Axes>)

一見、問題なく動作しているように、見える。が、何も表示されない。
Warningなので、いけるんじゃないの、と思っていたら、甘かった。

matplotlib on Python

PyPlotって事ですから、当然、Pythonなんだろう、と。Pythonで、matplotlib久しく使ってなかったけど、動くのかしら、と。(Fedora 28にしてからは動かしてはいないなぁ、と)
Julia環境からPython環境へ移行し、以下を実行してみると、

$ python
>>> import matplotlib.pyplot as plt
...
ModuleNotFoundError: No module named 'tkinter'

tkinter。キタコレ。やっぱり、なんだかんだで、Tkなんだな、と。Tk入ってなかったか。

$ sudo dnf install python2-tkinter python3-tkinter

で、再び、お試しを。

$ python
>>> import matplotlib.pyplot as plt
>>> x = [ i for i in range(10) ]
>>> y = [ j*j for j in range(10) ]
>>> plt.plot(x, y)
[<matplotlib.lines.Line2D object at 0x7fab150bd160>]
>>> plt.show()

問題なく、Pop-upでWindowが出力されました。

PyPlot Again

多分、問題ないのでしょうけど、

julia> using PyPlot
julia> x = [ i for i in 1:10 ]
...
julia> y = [ j*j for j in 1:10 ]
...
julia> plot(x,y)
1-element Array{PyCall.PyObject,1}:
 PyObject <matplotlib.lines.Line2D object at 0x7faf9632a128>

問題なく、別Windowが表示されます。これで問題なく使える環境ができました。

初見

matplotlibを知ったのは、もう忘れるほど前(確実に、pandasはなかった)だけど、Gnu Plotにしろ、Rにしろ、それらに見合うFormatに変換した後、再度、読み込ませて処理をする、ということをしてたりしました。(Bindingはできたけど)
Windows上に至っては、作業元のLinuxから、相応のFormatにしたものを転送して、という流れで。効率上、面倒くさいなぁ、と思ってて。動かした時には、感動しました。(Tkも似たような感じ)
Rも初見の時には、SASじゃん!って感動したんですよね。。。

これで、少し先へ進めます。

コメント

このブログの人気の投稿

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

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

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