Hatena::ブログ(Diary)

盆栽日記

2016-06-22

Jupyter notebook のnbextensionsを入れようとしたらうまくいかなかったのでAnaconda Extensionsを入れた話

Anaconda経由で入れたjupyter notebookのnbextensionを使いたい。

特に、見出しをtocでまとめてくれる"Table of Contents (2)"を使いたい。

しかし以下のようなメッセージが出て、http://localhost:8888/nbextensions/ にアクセスできない。

"Config option 'nbserver_extensions' not recognized by 'NotebookApp' "

色々調べていたらAnaconda Extensionsを使えばいいということがわかった。

https://github.com/Anaconda-Platform/anaconda-nb-extensions

以下のコマンドでインストールできる。

conda install anaconda-nb-extensions -c anaconda-nb-extensions

あとはhttp://localhost:8888/nbextensions/ にアクセスすればよい。

2016-06-13

cell magicとline magic

Jupyter notebookというかIPythonのrmagicを使ってて、%Rと%%Rの違いがわからなかったので調べた。

%という表記の問題でやたらググりにくいのでメモしておく。

結論から言うと、%1つだとline magic、%%2つだとcell magicである。

magic function

IPythonにはmagic functionと呼ばれるものがある。

IPython組み込みのものだと以下にリストアップされている。

http://ipython.readthedocs.io/en/stable/interactive/magics.html

この中で%1つから始まるコマンドがline magic、%%2つから始まるコマンドがcell magicである。

line magic、cell magicはそれぞれmagic functionの適用範囲で分かれている。

line magicは同一行のコマンドのみに適用され、cell magicは同一セルのコマンドに適用される。

詳しいことは以下のチュートリアルに書いてあるので適宜参照のこと。

http://ipython.readthedocs.io/en/stable/interactive/tutorial.html#magic-functions

お元気で。

2014-11-09

IPython notebookサイコオオオオオオオオオオオオオオオオオオオオオオオオオ

IPython notebook、昔々触ったときは「コンセプトは良いけどまだまだですナ。ハハハ」みたいな感じで流してたのだがちゃんと触ってみるとなにかと便利だったので未来の自分が別PCに導入することも考えてメモしておく。

インストール

Anacondaでインストールした。

http://continuum.io/downloads

使う

コマンドラインでipython notebookと打ち込めばブラウザ上に立ち上がる。

とりあえず以下の3点を覚えておけば快適。あとはショートカットキーを覚えていけば良い。

  1. Escでcommand modeへ、EnterでEdit modeに移行する。
  2. command modeでhを打てばショートカットキー一覧が出る。
  3. dを2回打てばセルを消去、zを打てば元に戻る、sで保存。

html埋め込み系の話はmarkdownで対応するとすっきりする。

例えばtwitterを埋め込みたいときは、「ツイートをサイトに埋め込む」で表示される文字列をセルにコピペした後、セルをmarkdownに変更(command modeでm)してやれば良い。

なお、Windowsだとショートカットキーはだいぶ異なるようなので注意。

たとえばショートカットキー一覧はCtrl+m-hで表示など、Ctrl+mをまず打つという手順が入る。

githubでnotebookを公開。

普通にgithubにファイルをアップすればOK。

addしてcommitしてpushだ。

そして下記サイトにgithubに上げたipynbのURLを放り込めばブラウザ上で見られるようにURLを生成してくれる。

http://nbviewer.ipython.org/

こんな感じ。

http://nbviewer.ipython.org/github/dichika/pythonmemo/blob/master/string141109.ipynb

ちなみにnotebookを共有するサービスもあるようで。これはPythonに限った話ではない。

http://beakernotebook.com/

エクステを使う

table of contentsはこれで自動生成するといい。

https://github.com/kmahelona/ipython_notebook_goodies

ここのエクステを使うとnotebookのツールバーにボタンが追加されてそれを押すとgist経由で簡単に投稿できる。addしてcommitしてpushとかしなくてよい。楽。

https://github.com/minrk/ipython_extensions

こんな感じになった。

http://nbviewer.ipython.org/gist/dichika/ecc7198721c7ecd3d33e

enjoy!!!

2014-02-10

Grammer of Graphicsでplotしたい

Grammer of Graphicsという本があります。

http://www.amazon.co.jp/dp/0387245448

分析を進める上での可視化のあり方を説いた本です。

その思想の中核はとりあえずデータを可視化してその分布を確認していくというアドホックな分析思考を「layerを重ねていく」ことで表現するというものです。

これを実装したものとしてRにはggplot2というパッケージがあります。

pythonに実装は無いのか

pythonでも実装が無いかなと探していたらとりあえず外見のみを真似たものとしてmpitoolsが見つかりました。

http://tonysyu.github.io/mpltools/auto_examples/style/plot_ggplot.html#example-style-plot-ggplot-py

mpitoolsで用いられているstyleを利用することで下記パッケージのようにggplot2の外見を真似ることはできます。

http://cmrivers.github.io/epipy/

嬉しい移植

しかしRのggplot2の本質は整った外見ではありません。

あれは作者Hadley Wickhamの趣味であり、本質は上に述べたような分析思考の投影にあります。

ということで、pythonにもggplot2をそのまま移植してくれた方がいました。

名前もそのままggplotです。嬉しい。

https://pypi.python.org/pypi/ggplot/

以下のようにRのggplot2と同じ書法でplotできます。

import pandas as pd
from ggplot import *
smp = pd.DataFrame({ 'a':[1, 2, 3], 'b':[4, 5, 6]})
ggplot(smp, aes(x='a', y='b')) + geom_point()

f:id:dichika:20140209205404p:image

良い時代だ。

詳しくはこちらを読んでほしい。

http://blog.yhathq.com/posts/ggplot-for-python.html