概要

タブ表示ができたり、pylabのplot結果をinlineで出せたりして、何かと便利なipythonのqtconsole。

defaultのままだと背景色やフォントがあれなので、いろいろ設定してみる。

@CretedDate 2014/09/27
@Versions Python2.7.6 pandas0.14.1-2

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
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
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
set profile

コマンドライン引数からも指定は可能。けど日本語はunicodeエラーになってうまくいかない気が。何か良い方法ありますかね。

$ ipython qtconsole --pylab=inline --style=monokai --IPythonWidget.font_size=18

グラフの背景色もいじる

これでそれなりに見られる外観になった。けど、inlineでplotしたら、ちょっと見づらいことになった。

plot( [0, 1] )

inline plot

クリックして拡大すると、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 

inline plot

ticksも見えるようになった。