1. HOME
  2. ブログ
  3. IT技術
  4. Julia入門~高速な動的型付け言語~【Jupyter Notebookを使ったグラフ描画編】
Julia入門~高速な動的型付け言語~【Jupyter Notebookを使ったグラフ描画編】

Julia入門~高速な動的型付け言語~【Jupyter Notebookを使ったグラフ描画編】

Jupyter Notebookを使ったグラフ描画編~Juliaに入門してみよう~

前回は、Julia の Web フレームワーク、「Genie」について紹介しました。

今回は、インタプリタ言語と相性がバッチリな、Jupyter Notebook を使っていきます。

また、そのサンプルコードとして、グラフ描画フレームワークも一緒に学んでいきましょう!

※本記事で使用するのは、「Julia ver 1.5」です。

こちらの記事もオススメ!


「IJulia」をインストールする

「IJulia」とは、Jupyter 環境に適応させるために、バックエンドで動作するフレームワークです。

特に Julia は、一つ一つのモジュールが重いので、なるべく負担は軽くしたいもの。

一つのセッションで、一度だけ最初にフレームワークを読み込めば、あとは快適に作業できますよね。

IJulia では、そういった使い方ができるのです。

インストールの方法

Jupyter のインストールは次の通り。

pip 環境であれば、

とすれば完了。

IJulia のインストールも、とても簡単にできます。

次のように、パッケージモードで追加するだけです。

そうしたら実際に、Jupyter で使用できるようになっているか、確認してみましょう!

このようになっていれば、Julia が使えるようになっているはずです。

立ち上げてみる

早速、以下のコマンドで立ち上げてみると、

「IJulia」をインストールする

このように、Julia が選択できるようになっているはずです。

「Plots」もインストールする

「Plots」は、Julia でよく使われる、グラフ描画のフレームワークです。

特徴は、シンプルな記述で複雑なグラフが描ける、といったところでしょうか。

もし、まだインストールしていなければ、パッケージモードで

と、してください。

Jupyter Notebookを使ってグラフを描画してみる

それでは早速、Jupyter でコーディングしてみましょう。

動作確認

まずは、簡単なコードで動作を確認します。

Plots を、「Shift + Enter」でインポートします。

ちょっと時間がかかりますが、終わったら、以下のコードを実行してみましょう。

すると、

Jupyter Notebookを使ってグラフを描画してみる

このように、かなり引数は省略していますが、きちんと正弦波がプロットされました!

plot()の各種引数を指定してみる

先ほどは、ほとんどの引数を端折りましたが、以下のように細かく描画をコントロールできます。

plot() グラフ

ちなみに画像は、 savefig("figure_name.png") で保存できます。

もちろん、png に留まらず、pdf 形式でも保存できますよ!

複数のグラフを描画する

複数のグラフを個別で描画する場合は、以下のようにします。

複数のグラフを描画する

全て、 plot() で済んでしまうのは便利ですね!

重ねて描画する

もし、複数のグラフを重ねて描画したいときは、以下のように記述しましょう!

これを実行すると、キレイに重なったグラフが描画されます。

重ねて描画する

ちなみに、 plot!() を使えば、いくつでも重ねて描画できます。

本来は、第一引数に重ねて描画するプロットを引数にとりますが、今回のように省略することもできるのです。

つまり、

は、「同じ」となるわけですね!

「!」が最後についた関数

「!」が最後についた関数は、Julia の慣例の一つで、その関数の引数を変更するときに使用します。

つまり、以下のようにすれば、後からグラフタイトルをつけたり、描画範囲を変更したりできるわけです。

「!」が最後についた関数 グラフ

その他のグラフ

連続的な折れ線グラフに留まらず、ヒストグラムや 3D グラフなども、簡単に描画できます。

これも、サンプルコードを見ていきましょう!

その他のグラフ

グラフが、キレイに描画できていますね!

「他のも見てみたい!」という方は、Plots の公式ドキュメントにも、目を通してみましょう。

【Plots 公式ドキュメント】
http://docs.juliaplots.org/latest/

バックエンドライブラリを変更する

Plots のデフォルトでは、描画ライブラリは「GR」が呼ばれるので、必要に応じて変更します。

例えば、PyPlot であれば、以下のような設定をすれば完了です。

あとは、バックエンドを変更して、描画するだけです。

バックエンドライブラリを変更する グラフ

ちなみに、PyPlot の特徴は、出力が PNG 形式であること。

GR では SVG なので、キレイに描画されます。

ところが PyPlot では、DPI を調整しないと、やや粗めの出力になってしまうのです。

SVG 形式は、パッとみた感じは良いのですが、複雑なグラフをたくさん描画するほど、ページは重くなってしまいます。

つまり、目的によって、使い分けるのが良いということですね!

ただ、普段使いであれば、デフォルトの GR で問題ありません。

Fluxでの機械学習編へつづく!

今回は、Julia を Jupyter Notebook で使えるようにする手順と、描画ライブラリの Plots を紹介しました。

レポートや論文などに載せるグラフを、手早く作成したい場合は、Python より優秀かもしれません。

そう考えてみると、Julia の「研究者向け言語」といわれる意味が、バッチリ伝わってきますね!

さて次回は、Julia の機械学習フレームワーク「Flux」を、紹介していこうと思います。

では、次回もお楽しみに!

Fluxでの機械学習編はこちら!

記事を書いた人

\ 3度のメシより技術が好き /
(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
システム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!


ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界はお前の手の中に・・・ /

モバイルエンジニア

\ サービスの守り神! /

インフラエンジニア