Jupyter NotebookをGitHub上で公開する

Jupyter NotebookをGitHubで公開したメモです。

作成したJupyter NotebookをGitHub上で公開してみようと思います。
GitHubではJupyter Notebookをサポートしていて、
GitHub上でレンダリングすることができます。
github.com

Notebook作成

以前作成したランダム値の線形回帰のプログラムをNotebookにしてみます。
pppurple.hatenablog.com

まずは、コマンドをNotebookに張り付けていきます。
f:id:pppurple:20160611185010p:plain

最後にplt.show()すると、下記の様にグラフが別ウィンドウで表示されてしまいます。
f:id:pppurple:20160611185250p:plain

インラインでグラフを表示するために、1行目に
%matplotlib inline
を記述してshift + Enterで再実行します。
f:id:pppurple:20160611185754p:plain

すると、グラフがNotebook上で表示されました。
f:id:pppurple:20160611191405p:plain

Markdownでコメントを記述して、
linear_modelというタイトルをつけて保存します。
f:id:pppurple:20160611191638p:plain

GitHubで公開

保存したNotebookは.ipynbという拡張子になっています。
中身は下記の様なjson形式になっています。

# cat linear_model.ipynb
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Linear model using sklearn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn import linear_model, datasets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## generate random values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "np.random\n",
    "regdata = datasets.make_regression(100, 1, noise=20.0)"
   ]
  },
   :
   :
   :

GitHubへの公開はこの.ipynbファイルをアップロードするだけです。
下記の様にアップロードしました。
f:id:pppurple:20160611192139p:plain

このlinear_model.ipynbをクリックしてみます。
すると、GitHub上で下記の様に実行され、レンダリングされます。
f:id:pppurple:20160611192400p:plain

このように、.ipynbというjson形式のファイルで簡単にプログラムを共有でき、
GitHubやnbviewerなどで公開できるのがいい点です。

下記に公開したNotebookを置いてあります。
github.com


【参考】