julia で、PyPlot & seaborn を動かす

julia で、PyPlot & seaborn を動かして、"R" で描画するところの "plot (iris)" に相当するグラフ群を描いてみましょう。

すでに、python がインストールしてあり python で seaborn が動く方でも、julia からは、何もしないと恐らく動きません。python がインストールしてあっても、インストール済みの python の情報を julia に教えていない場合は、julia 内に julia 謹製の python が別にインストールされるような感じになります。

既存の python を使う方法

julia さんに、すでに存在する python の環境情報を提供する方法は、

julia> ENV["PYTHON"]=""
julia> Pkg.build("PyCall")

という方法になります。これを julia のコマンドラインに入れることになります。ENV["PYTHON"]="" の "" には、何を入れたのか忘れてしまいました。

ターミナル (bash など)の

% which python
または
% which python3

どちらかの戻り値か、homebrew を使っている場合は、"/usr/local/opt/python/bin" 入れると良いはずです。"/usr/local/opt/python/bin/python3.6" などかもしれません。自分の場合は、

julia> PyCall.pyprogramname
"/usr/local/opt/python/bin/python3.6"

になっています。

julia から python を入れる方法

上記を読んでも、難しそうで、とても手が出そうにない方や、他の python 環境に興味が無い方は、julia 謹製の python 環境に、seaborn を入れてみることにしましょう。これは、julia の Conda 経由で、julia に、seaborn を入れることで実装できます。Conda.add("") というコマンドを使うと、julia だけで、seaborn が動く pycall/pyplot 環境が構築できます。

using PyCall
using Conda
Conda.add("seaborn")

基本的には、seaborn のギャラリーにある Scatterplot Matrix を描画するには、"import seaborn ... " の前に "@py" を付けて、1回読み込んでしまえば、あとは、"@py" なしです。この程度の描画なら、ほとんど、Python のコードのままで良いようです。クォーテションがダブルになるのは、ちょっと、気をつけないといけないかもしれません。

using PyCall
using PyPlot
@pyimport seaborn as sns
df = sns.load_dataset("iris")
sns.pairplot(df, hue="species")
B! LINE