Julia: グラフの描画
Gadfly ライブラリ
Gadfly.jl は ggplot2 をベースに Julia で実装されているプロットと可視化のライブラリ。REPL からマウス操作可能な HTML + SVG を出力しブラウザを起動したり、PNG 等の画像ファイルへ保存することができる。
Pkg.add("Gadfly")
# 以下は PNG 出力時に必要 (エラーメッセージ参照)
Pkg.add("Cairo")
Pkg.add("Fontconfig")
Pkg.build("Cairo")
Iris をプロットした PNG 画像は以下のように作成することができる。
using Gadfly
using RDatasets
iris = dataset("datasets", "iris")
p = plot(iris, x=:SepalLength, y=:SepalWidth, Geom.point)
img = PNG("iris_plot.png", 15cm, 10cm)
draw(img, p)
REPL の Gadfly はプロット画像の作成のみで表示には実行環境のブラウザを使用するため Windows 環境でも容易に使用することができる。REPL から出力した画像は ; + pwd
で表示されるディレクトリに保存されている。
PyPlot ライブラリ
PyPlot はプロットライブラリである matplotlib.python のインターフェースを Julia から使えるようにしたパッケージ。ローカルに導入する場合は REPL で PyPlot パッケージを導入しておく。
julia> Pkg.add("PyPlot")
公式サイトから参照できるテスト実行サイトなら最初から導入されているので便利。
ヒストグラム
テキストファイルに保存されている1行1値の 1 次元データを読み出してそのヒストグラムを表示する。
using PyPlot
function load(file_name::String)
scores = []
file = open(file_name, "r")
while ! eof(file)
num = readline(file)
push!(scores, parse(Float64, num))
end
close(file)
return scores
end
x = load("data.txt")
nbins = 100
PyPlot.plt[:hist](x, nbins)
ax = gca()
ax[:set_ylim]([0, 60])
ax[:set_xlabel]("X Label")
ax[:set_ylabel]("Y Label")