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じゃん!って感動したんですよね。。。
これで、少し先へ進めます。
コメント
コメントを投稿