Skip to content

Instantly share code, notes, and snippets.

@ged1959
Last active September 19, 2016 11:35
Show Gist options
  • Save ged1959/fcd4cc4b67dda0004bb205638654e0f8 to your computer and use it in GitHub Desktop.
Save ged1959/fcd4cc4b67dda0004bb205638654e0f8 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 解読「Python & Jupyterでデータ解析入門」\n",
"\n",
"<div style=\"text-align: right;\">\n",
"2016.9.18:\n",
"</div>\n",
"\n",
"日経Linuxで、2016.9から表記の連載が始まった。記事の通り触ってみると、Jupyterいいなぁ、と思い始めた。\n",
"\n",
"これまでCloud9で環境を構築していたが、コードをファイルで管理しなくてはいけない。特に大変なのは、matplotlibで描画したら、ファイルとして出力しなくてはいけないことだ。\n",
"\n",
"これはこれで役に立つことがあるかもしれないが、より便利で簡単な方法を探るのが、コーダーとしては基本的な心がけ。という訳で、しばらくJupyterを触ってみよう。\n",
"\n",
"ファンも多い。[現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ \\- クックパッド開発者ブログ](http://techlife.cookpad.com/entry/write-once-share-anywhare)のように、楽しい解説もある。\n",
"\n",
"取りあえず、連載が紹介している、cloud上でJupyterが使えるサイト「[Project Jupyter](http://jupyter.org/)」を使い倒してみよう。\n",
"\n",
"以下に関連リンク。\n",
"\n",
"1. [Jupyter Notebookを利用してお手軽分析環境構築 \\| DATUM STUDIO 株式会社](https://datumstudio.jp/backstage/795)\n",
"2. [Jupyter nbconvert(ファイル変換)メモ \\- はしくれエンジニアもどきのメモ](http://cartman0.hatenablog.com/entry/2016/03/29/131903)\n",
"3. [Jupyter Notebook を使ってみよう – Python でデータサイエンス](http://pythondatascience.plavox.info/python%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83/jupyter-notebook%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86/)\n",
"\n",
"## 課題もある\n",
"\n",
"コーディングの環境設定ではつきものだが、例によって、独自の設定が必要になる。上記の連載2回目のコードも、そのままでは動かない。盛大にエラーが吐き出される。(**Localにインストールした場合は違うかもしれない。別ウィンドウでシンプルに描画される可能性もあるが、試していない。**)\n",
"\n",
"以下のコード。(オリジナルはデータが多すぎるので、簡易化したもの)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/conda/lib/python3.5/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n",
"/opt/conda/lib/python3.5/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n"
]
},
{
"ename": "RuntimeError",
"evalue": "Invalid DISPLAY variable",
"output_type": "error",
"traceback": [
"\u001b[1;31m\u001b[0m",
"\u001b[1;31mRuntimeError\u001b[0mTraceback (most recent call last)",
"\u001b[1;32m<ipython-input-3-cb6ff15229f2>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0my\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m6\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m8\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;32m/opt/conda/lib/python3.5/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mplot\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 3145\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0m_autogen_docstring\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mAxes\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3146\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3147\u001b[1;33m \u001b[0max\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgca\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3148\u001b[0m \u001b[1;31m# allow callers to override the hold state by passing hold=True|False\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3149\u001b[0m \u001b[0mwashold\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0max\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mishold\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/opt/conda/lib/python3.5/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mgca\u001b[1;34m(**kwargs)\u001b[0m\n\u001b[0;32m 926\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mFigure\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgca\u001b[0m \u001b[1;33m:\u001b[0m \u001b[0mThe\u001b[0m \u001b[0mfigure\u001b[0m\u001b[0;31m'\u001b[0m\u001b[0ms\u001b[0m \u001b[0mgca\u001b[0m \u001b[0mmethod\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 927\u001b[0m \"\"\"\n\u001b[1;32m--> 928\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mgcf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgca\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 929\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 930\u001b[0m \u001b[1;31m# More ways of creating axes:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/opt/conda/lib/python3.5/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mgcf\u001b[1;34m()\u001b[0m\n\u001b[0;32m 576\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mfigManager\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 577\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 578\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mfigure\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 579\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 580\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/opt/conda/lib/python3.5/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mfigure\u001b[1;34m(num, figsize, dpi, facecolor, edgecolor, frameon, FigureClass, **kwargs)\u001b[0m\n\u001b[0;32m 525\u001b[0m \u001b[0mframeon\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mframeon\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 526\u001b[0m \u001b[0mFigureClass\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mFigureClass\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 527\u001b[1;33m **kwargs)\n\u001b[0m\u001b[0;32m 528\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 529\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mfigLabel\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/opt/conda/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py\u001b[0m in \u001b[0;36mnew_figure_manager\u001b[1;34m(num, *args, **kwargs)\u001b[0m\n\u001b[0;32m 44\u001b[0m \u001b[0mFigureClass\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'FigureClass'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mFigure\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 45\u001b[0m \u001b[0mthisFig\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mFigureClass\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 46\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mnew_figure_manager_given_figure\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnum\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mthisFig\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 47\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 48\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/opt/conda/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py\u001b[0m in \u001b[0;36mnew_figure_manager_given_figure\u001b[1;34m(num, figure)\u001b[0m\n\u001b[0;32m 51\u001b[0m \u001b[0mCreate\u001b[0m \u001b[0ma\u001b[0m \u001b[0mnew\u001b[0m \u001b[0mfigure\u001b[0m \u001b[0mmanager\u001b[0m \u001b[0minstance\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mgiven\u001b[0m \u001b[0mfigure\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 52\u001b[0m \"\"\"\n\u001b[1;32m---> 53\u001b[1;33m \u001b[0mcanvas\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mFigureCanvasQTAgg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfigure\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 54\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mFigureManagerQT\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnum\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 55\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/opt/conda/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, figure)\u001b[0m\n\u001b[0;32m 74\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mDEBUG\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 75\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'FigureCanvasQtAgg: '\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfigure\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 76\u001b[1;33m \u001b[0mFigureCanvasQT\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfigure\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 77\u001b[0m \u001b[0mFigureCanvasQTAggBase\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfigure\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 78\u001b[0m \u001b[0mFigureCanvasAgg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfigure\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/opt/conda/lib/python3.5/site-packages/matplotlib/backends/backend_qt4.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, figure)\u001b[0m\n\u001b[0;32m 66\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mDEBUG\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 67\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'FigureCanvasQt qt4: '\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfigure\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 68\u001b[1;33m \u001b[0m_create_qApp\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 69\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 70\u001b[0m \u001b[1;31m# Note different super-calling style to backend_qt5\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/opt/conda/lib/python3.5/site-packages/matplotlib/backends/backend_qt5.py\u001b[0m in \u001b[0;36m_create_qApp\u001b[1;34m()\u001b[0m\n\u001b[0;32m 136\u001b[0m \u001b[0mdisplay\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0menviron\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'DISPLAY'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 137\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mdisplay\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m \u001b[1;32mor\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mre\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msearch\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m':\\d'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdisplay\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 138\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Invalid DISPLAY variable'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 139\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 140\u001b[0m \u001b[0mqApp\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mQtWidgets\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mQApplication\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\" \"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mRuntimeError\u001b[0m: Invalid DISPLAY variable"
]
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"x = [1, 2, 3]\n",
"y = [4, 6, 8]\n",
"\n",
"plt.plot(x, y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"一行だけ書き加える必要がある。例えば、以下のサイトから。\n",
"\n",
"4. [jupyter \\(ipython\\) notebook でグラフが出ない時の対応方法 \\- Qiita](http://qiita.com/polikeiji/items/c6a11c16a0587705c887)\n",
"5. [python \\- in Ipython notebook, Pandas is not displying the graph I try to plot\\. \\- Stack Overflow](http://stacko\n",
"6. [%matplotlib inlineを毎回書かなくて済む方法 \\- Qiita](http://qiita.com/nogut0123/items/2c83e30e274e5a51cb41)verflow.com/questions/10511024/in-ipython-notebook-pandas-is-not-displying-the-graph-i-try-to-plot)\n",
"7. [%matplotlib inlineを毎回書かなくて済む方法 \\- Qiita](http://qiita.com/nogut0123/items/2c83e30e274e5a51cb41)\n",
"8. [iPython Notebookの\\-\\-pylab inlineは使うのをやめようという話 \\- Wolfeyes Bioinformatics beta](http://yagays.github.io/blog/2014/08/15/ipython-notebook-matplotlib-inline/)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f1d6e420160>]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nu6R5s+RnwHqXtCgs+ZZZ75IWiSXfEutd0iKy5FtgvUtaVJb8FKx3SYvOkp+Q9S5pGVjyY7LeJS0T\nS34M1rukZdO45JNckOSpJA9vsu9AklcH+59K8hvtTnO+rHdJy2qckr8TeBZ47xb7v15VN04/pcVi\nvUtaZo1KPsmlwA3AF7cb1sqMFoT1LqkLmpb87wCfAfZuM+b6JGeBc8BnqurZaSc3L9a7pK7YseST\nfBJYr6qzbNT6ZsX+JPD+qroK+K/Ag63OcpdY75K6pknJfxS4MckNwEXAjya5v6o+/daAqnpt6P5X\nk/xukvdV1SujT7a2tnb+fq/Xo9frTTH99ljvkhZFv9+n3++38lypquaDkwPAr43+gjXJvqpaH9y/\nFjhVVR/Y5OdrnNfbDVVw6hTceSccOgTHjsGePfOelST9oyRU1US/95z4ffJJDgNVVfcCNyf5VeD7\nwD8At0z6vLvJepfUdWOV/NQvtiAlb71LWiZzKfllZb1LWiUr8901vnNG0ipaiZK33iWtqk6XvPUu\nadV1tuStd0nqYMlb75L0jzpV8ta7JL1dJ0reepekzS19yVvvkrS1pS15612SdraUJW+9S1IzS1Xy\n1rskjWdpSt56l6TxLXzJW++SNLmFLnnrXZKms5Alb71LUjsWruStd0lqz8KUvPUuSe1biJK33iVp\nNhqXfJILkjyV5OEt9t+d5C+SnE1yVZPntN4labbGWa65E3h2sx1JDgL7q+py4DBwfKcne/ll+NSn\nYG1to95/67f8x7TH1e/35z2FTvF4tsdjuTgaXeSTXArcAHxxiyE3AfcDVNVpYG+SfZsNtN7b4/9I\n7fJ4tsdjuTiarsn/DvAZYO8W+y8BXhp6fG6wbX104Kc+5dq7JO2WHUs+ySeB9ao6C2Rwm5j1Lkm7\nJ1W1/YDk88C/A34AXAT8KPBAVX16aMxx4LGqOjl4/DxwoKrWR55r+xeTJG2qqiYK7B0v8m8bnBwA\nfq2qbhzZfgNwR1V9Msl1wF1Vdd0kE5IktWfi98knOQxUVd1bVY8muSHJC8DrwL9vbYaSpImNVfKS\npOXS+tcaJPlvSdaTfHObMWN/cGpV7XQ8kxxI8urgg2pPJfmN3Z7jskhyaZL/meSZJH+e5MgW4zw/\nG2hyPD0/m0vyI0lOJzkzOJ5Htxg33vlZVa3egI8BVwHf3GL/QeCRwf2PAE+0PYcu3RoczwPAw/Oe\n5zLcgH8OXDW4/x7g/wD/cmSM52e7x9Pzc7xjevHgvz8EPAFcO7J/7POz9ZKvqseB/7fNkMYfnFKj\n4wlTvq11VVTV39TGW4GpqteA59j4PMcwz8+GGh5P8PxsrKreGNz9ETZ+Zzq6nj72+TmPb6Hc6oNT\nmtz1g7+6PZLkynlPZhkk+QAbf0M6PbLL83MC2xxP8PxsbPAdYWeAvwG+VlXfGBky9vm5EN9Cqak8\nCby/qt4YfIfQg8AVc57TQkvyHuAPgDsHBaop7HA8PT/HUFVvAlcneS/wYJIrq2rT7wxrah4lfw74\niaHHlw62aQJV9dpbf8Wrqq8C70ryvjlPa2EluZCNC9KXquqhTYZ4fo5hp+Pp+TmZqvoe8Bjw8yO7\nxj4/Z3WR3+7rDx4GPg0w+ODUqzXyyVi9w5bHc3g9Lsm1bLwt9pXdmtgS+u/As1X1hS32e36OZ9vj\n6fnZXJJ/lmTv4P5FwL8Gnh8ZNvb52fpyTZLfB3rAP03yHeAo8MP4wamJ7HQ8gZuT/CrwfeAfgFvm\nNddFl+SjwL8F/nyw7lnAfwZ+Es/PsTU5nnh+juNfAL+X5AI2Avzk4Hyc6oOnfhhKkjpsYf6NV0lS\n+7zIS1KHeZGXpA7zIi9JHeZFXpI6zIu8JHWYF3lJ6jAv8pLUYf8f6vlq2OdTOTQAAAAASUVORK5C\nYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f1d6f2f2ac8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 以下の一行を追加。\n",
"%matplotlib inline\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"x = [1, 2, 3]\n",
"y = [4, 6, 8]\n",
"\n",
"plt.plot(x, y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 追記1\n",
"\n",
"以下のように、Jupyterをcloud9に入れておく手もある。拡張機能を使えるなど利点もありそうだ。\n",
"\n",
"1. [Cloud9で簡単Jupyter環境構築 \\- Qiita](http://qiita.com/y__sama/items/58419e85f39265fe6df8)\n",
"2. [extensionを追加してもっと快適なJupyter環境を構築する \\- Qiita](http://qiita.com/sasaki77/items/30a19d2be7d94116b237)\n",
"\n",
"## 追記2\n",
"\n",
"GitHub、Gistに上げておくこともできる。以下。\n",
"\n",
"1. [GitHub Gistを使ってブログにJupyter\\(IPython\\) Notebookを表示する方法](http://p--q.blogspot.jp/2015/10/github-gistjupyteripython-notebook.html)\n",
"2. [Jupyter NotebookをGitHub上で公開する \\- abcdefg\\.\\.\\.\\.\\.](http://pppurple.hatenablog.com/entry/2016/06/11/194713)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
},
"widgets": {
"state": {},
"version": "1.1.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment