2019年5月25日土曜日

[Julia] バイオリンプロットを描く

前回はCSVファイルを読み込む際のメモを投稿しましたが,CSVファイルで読み込んだデータからバイオリンプロットを描いてみた際のメモです.

まずはCSVパッケージを読み込みます.
julia> using CSV

続いてCSVデータを読み込みます.読み込むデータは 3-3-2-fish_multi.csv*というcsvファイルです.
julia> fish_multi = CSV.read("3-3-2-fish_multi_2.csv", header = true, delim = ',')
20×2 DataFrames.DataFrame
│ Row │ species │ length │
│     │ String  │ Int64  │
├─────┼─────────┼────────┤
│ 1   │ A       │ 2      │
│ 2   │ A       │ 3      │
│ 3   │ A       │ 3      │
│ 4   │ A       │ 4      │
│ 5   │ A       │ 4      │
│ 6   │ A       │ 4      │
│ 7   │ A       │ 4      │
│ 8   │ A       │ 5      │
│ 9   │ A       │ 5      │
│ 10  │ A       │ 6      │
│ 11  │ B       │ 5      │
│ 12  │ B       │ 6      │
│ 13  │ B       │ 6      │
│ 14  │ B       │ 7      │
│ 15  │ B       │ 7      │
│ 16  │ B       │ 7      │
│ 17  │ B       │ 7      │
│ 18  │ B       │ 8      │
│ 19  │ B       │ 8      │
│ 20  │ B       │ 9      │

続いて,描画のためのライブラリを読み込みます.
julia> using PyCall, PyPlot, DataFrames
julia> sns = pyimport("seaborn")
julia> pd  = pyimport("pandas")

データをPandasのDataFrameに渡します.
julia> fish_multi_Pd = pd.DataFrame( 
           Dict(
               "species" => fish_multi.species, 
               "length"  => fish_multi.length 
               )
           );

Seabornを使って描画します.
julia> sns.violinplot(x = "species", y = "length",
                             data = fish_multi_Pd, color = "gray")
上記の事柄をJupyter Notebookで実行した結果はこちら(GiHub)で見ることができます.また,同じことをPythonで実行した結果はこちら(Github)で見ることができます.

3-3-2-fish_multi.csv の中身
species,length
A,2
A,3
A,3
A,4
A,4
A,4
A,4
A,5
A,5
A,6
B,5
B,6
B,6
B,7
B,7
B,7
B,7
B,8
B,8
B,9

0 件のコメント :

コメントを投稿