Jupyterでインタラクティブにグラフを表示

JupyterとPython Matplotlib, ipywidgetsでグラフの描画パラメータをインタラクティブに設定するサンプルを作成。Jupyterは可視化にとても便利だけど、パラメータを変更する度にスクリプトをいちいち直さなければだめだったが、ipywidgetsでインタラクティブにパラメータを設定、表示できて、いちいちスクリプトを変更しなくて済むため、とっても便利(内部ではJavaScriptが動作しているみたい)

【環境】
●下記を実行してcondaからインストール
conda install pywidgets idgetsnbextension=2.0.0
  pywidgets 6.0.0 py35_0
  idgetsnbextension 2.0.0 py35_0

【参考にさせて頂いたURL】
pywidgetsの使い方
conflicting versions of ipywidgets and widgetsnbextension in conda #1678
 condaでインストールすると "No module named 'ipywidgets' error when running IPyhon.widgets"というエラーが発生。
pywidgets-6.0.0と一緒にインストールされるidgetsnbextension-3.0.1との間で不整合が発生しているらしく、idgetsnbextension=2.0.0とバージョンを指定してインストールすると正しく動作した。

【サンプル】
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from ipywidgets import interact, FloatSlider, RadioButtons

rad = FloatSlider(min=0.1, max=10, step=0.1, value=10)
wave = RadioButtons(options=['cos', 'sin'])
def curve(x_max, type):
x = np.arange(0, x_max, 0.1)
if type == "cos":
y = np.cos(x)
else:
y = np.sin(x)
plt.plot(x,y)
plt.show()
interact(curve, x_max=rad, type=wave)


【アノテーションを使った例】
@interact(x_max=rad, type = wave)
def curve(x_max, type):
x = np.arange(0, x_max, 0.1)
if type == "cos":
y = np.cos(x)
else:
y = np.sin(x)
plt.plot(x,y)
plt.show()


jupyter
スポンサーサイト

Visual Studio CodeによるPython開発環境2

Visual Studio Codeにタスクを登録して、Pythonの開発環境をカスタマイズ。いろんなことができて、結構快適かもしれない。

●参考にさせて頂いたURL
Visual Studio Code: Task 機能に複数の任意のコマンドを簡単に仕込む方法

tasks.json
{
"version": "0.1.0"
, "command": "sh"
, "isShellCommand": true
, "showOutput": "always"
, "args": [ "-c" ]
, "tasks":
[
{ "taskName": "build"
, "suppressTaskName": true
, "args": [ "cd ${fileDirname}; python ${file}" ]
, "isBuildCommand": true
}
, { "taskName": "test"
, "suppressTaskName": true
, "args": [ "nosetests -v" ]
, "isTestCommand": true
}
]
}


keybindings.json
[
{
"key": "shift+cmd+b",
"command": "workbench.action.tasks.build"
},
{
"key": "shift+cmd+t",
"command": "workbench.action.tasks.test"
},
{
"key": "shift+cmd+F5",
"command": "workbench.action.tasks.runTask"
}
]

Visual Studio CodeによるRuby開発環境

Microsoft社のVisual Studio Code(VSC)でRuby環境を構築した時のメモ。Ruby/RSpecののデバッガとしてなかなか手頃のものがなかったが、VSCでいい感じのデバッグ環境が簡単に構築できた。

【環境】
●Windows 10: Anniversary Update版
 bashが使えるが、まだ環境を移植していないので、当面、MinGW/msysのまま
●MinGW/msys:1.0
●Visual Studio Code:1.7.2
●Ruby:2.0.0
●Rspec:3.4.4
●pik:0.3.0.pre
Windows上のRuby仮想環境(Windowsのbashが使えるならもっと手ごろな仮想環境ありそうだが、、)

【追加したVSCのプラグイン】
・Ruby

【WindowsでのRubyデバッグ環境の整備】
●Development Kitのインストール(Windowsのみ必要)

$ ruby dk.rb init
$ ruby dk.rb install

・参考にさせて頂いたURL:DEVELOPMENT KIT のセットアップ方法

●デバッグに必要はパッケージのインストール

$ gem install ruby-debug-ide
$ gem install debase

・参考にさせて頂いたURL:Visual Studio Code で Ruby を何とかして書けるようにする

【Ruby用起動方法】
> pik use ruby-2.0.0-p247 # Ruby仮想環境の設定
> code # Ruby仮想環境を使用するようにVSCを起動

【Ruby用launcher.jsonの修正(抜粋)】
ディフォールトのRuby用launcher.jsonだと、main.rbがデバッグ対象になるため、開いているスクリプトファイル${file}を指定するように変更。また、RSpec用スクリプトもデバッグできるように、追加してみた。ただし、Rubyの仮想環境を使っているが、proguram変数に指定するrspecは絶対パスを指定しているので、今後修正しないとダメだが、とりあえず、、、(どなたか、仮想環境でのrspecを上手く指定する方法が分かれば教えて頂けないでしょうか)。
多少の不満はあるが、Rubyコードが簡単にデバッグできるようになって、結構感激。

        {
"name": "Debug Local File",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "${file}" // "${workspaceRoot}/main.rb"から開いているスクリプトをに変更
},
{
"name": "RSpec Local File",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "c:/Ruby/Ruby200-x64/bin/rspec", // 絶対パスを指定
"args": [
"-fd",
"-I",
"${workspaceRoot}",
"${file}"
]
},

Visual Studio CodeによるPython開発環境

Microsoft社のVisual Studio Code(VSC)でPython環境を構築した時のメモ。VSCはAtomより軽量で安定しており、Python、Ruby、Markdown開発用のエディタ( MarkdownでPDF/HTML/DOCXファイルへの変換方法とチートシート )、デバッガとしても使えるとのこと。ぱっと触った感じだと、結構いい感じなので、長年使ってきたEmacsから乗り換えることも可能かもしれない(Emacsのキーボードバインディングのプラグインもあったが、Windowsのキーバインディングとバッティングしまくりで、当面使うことを諦めた)。

【環境】
●Windows 10: Anniversary Update版
 bashが使えるが、まだ環境を移植していないので、当面、MinGW/msysのまま
●MinGW/msys:1.0
●Visual Studio Code:1.7.2
●Anaconda/Miniconda
 Python 3.5.2を仮想環境で利用中

【追加したVSCのプラグイン】
・Python

【Python用起動方法】
$ source activate py35 # Python 3.5.2仮想環境の設定
$ cmd /c code # Python3.5.2を使用するようにbashからVSCを起動

【Pythonデバッグ用launcher.jsonの修正(抜粋)】
ディフォールトのPython用launcher.jsonだと、実行時のカレントディレクトリが「フォルダを開く」で開いたフォルダになっているようなので、スクリプトがあるフォルダをカレントディレクトリに指定するように変更し、実行時にPYTHONPATHの修正が必要な場合はenv変数を修正するように変更してみた。現状デバッグはSpyderを主に使っていたが、VSCでのデバッグはSpyderがサポートしているPandasの表形式の表示がない程度で、かなり使える印象。

        {
"name": "Python",
"type": "python",
"request": "launch",
"stopOnEntry": true,
"pythonPath": "${config.python.pythonPath}",
"program": "${file}",
"cwd": "${fileDirname}", // "${workspaceRoot}"を変更してスクリプトファイルディレクトリに設定
"env": {
"PYTHONPATH": "${env.PYTHONPATH};c:/home/XXX" // PYTHONPATH環境変数を修正
},
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
]
},

MacとAnacondaを利用したPython Spyder環境構築(その後)

昨日作成した下記を

MacとAnacondaを利用したPython Spyder環境構築

改めて本日確認したところ、Anaconda/Minicondaでspyderをインストールすると

インストールされたバージョン
- pyqt 4.11.4 py35_4
- sip 4.18 py35_0
- spyder 2.3.9 py35_1

となって、sipの依存バージョンが更新されたみたいで、無事に動作した。よかったよかった!!!
プロフィール

Zaike Yuki

Author:Zaike Yuki
オブジェクト指向、C++/Java、Python、Eclipse、Android、等に興味を持つソフトウェアエンジニア

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる