タブ表示ができたり、pylabのplot結果をinlineで出せたりして、何かと便利なipythonのqtconsole。
defaultのままだと背景色やフォントがあれなので、いろいろ設定してみる。
下記コマンドで立ち上げる。--pylab=inlineしているのは趣味。
$ ipython qtconsole --pylab=inline
たいへん残念な外観。
--colorsで設定できるらしい。
http://ipython.org/ipython-doc/dev/interactive/qtconsole.html#colors-and-highlighting
LightBG, NoColor, Linuxの3つがあるそうな。
$ ipython qtconsole --pylab=inline --colors=linux
あとは--styleでも指定できるとか。指定可能なスタイル名は下記で見られる。
import pygments pygments.styles.STYLE_MAP.keys()
下記のような結果が表示された。
['monokai', 'manni', 'rrt', 'perldoc', 'borland', 'colorful', 'default', 'murphy', 'vs', 'trac', 'tango', 'fruity', 'autumn', 'bw', 'emacs', 'vim', 'pastie', 'friendly', 'native']
表示された中から monokai を選んでみる。
$ ipython qtconsole --pylab=inline --style=monokai
自前でCSS書くこともできるらしいけど、用意されているもので不足はないからこれでいいや。
フォントも変更してみる。オプションの詳しい設定は下記がわかりやすい。
http://ipython.org/ipython-doc/dev/config/options/qtconsole.html
どのへんのfont入れてたっけ的な時のコマンド。
$ fc-list
profileをcreateして編集してみる。
$ ipython profile create foo [ProfileCreate] Generating default config file: u'/home/user/.ipython/profile_foo/ipython_config.py' [ProfileCreate] Generating default config file: u'/home/user/.ipython/profile_foo/ipython_qtconsole_config.py' [ProfileCreate] Generating default config file: u'/home/user/.ipython/profile_foo/ipython_notebook_config.py' [ProfileCreate] Generating default config file: u'/home/user/.ipython/profile_foo/ipython_nbconvert_config.py'
生成された ipython_qtconsole_config.py
$ vi ~/.ipython/profile_foo/ipython_qtconsole_config.py # 日本語を使うので、冒頭に下記を入れておく # -*- coding: utf-8 -*- # フォントとサイズの設定 c.IPythonWidget.font_family = u'TakaoExゴシック' c.IPythonWidget.font_size = 10 # widthとheightもお好みで c.IPythonWidget.width = 600 c.IPythonWidget.height = 300
あとは立ち上げる時に作成したprofileを指定してあげれば、すべて解決。
$ ipython qtconsole --pylab=inline --colors=linux --profile=foo
コマンドライン引数からも指定は可能。けど日本語はunicodeエラーになってうまくいかない気が。何か良い方法ありますかね。
$ ipython qtconsole --pylab=inline --style=monokai --IPythonWidget.font_size=18
これでそれなりに見られる外観になった。けど、inlineでplotしたら、ちょっと見づらいことになった。
plot( [0, 1] )
クリックして拡大すると、tickの部分が背景色と混ざってしまっている。
opacityの問題だと思うので、ipython_qtconsole_config.py に下記を追加する。
c.InlineBackend.rc = {'font.size': 10, 'figure.figsize': (6.0, 4.0), 'figure.facecolor': (1, 1, 1, 1), 'savefig.dpi': 72, 'figure.subplot.bottom': 0.125, 'figure.edgecolor': (1, 1, 1, 1)}
$ ipython qtconsole --pylab=inline --colors=linux --profile=foo
ticksも見えるようになった。