ipythonとpdbの組み合わせで人生を楽にする方法
予期しない例外が起きた場合:
In [55]: scatter(data[:, 0], data[:, 1], marker=".") --------------------------------------------------------------------------- (中略) /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axes.pyc in scatter(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, faceted, verts, **kwargs) 5736 sym = syms.get(marker) 5737 if sym is None and verts is None: -> 5738 raise ValueError('Unknown marker symbol to scatter') 5739 numsides, rotation, symstyle = syms[marker] 5740 ValueError: Unknown marker symbol to scatter
なんだよどこに使えるシンボルの一覧があるんだよこれ(matplotlib.lines.Line2D.set_marker)じゃないのかよと怒る前に焦らず騒がずpdb
In [56]: pdb Automatic pdb calling has been turned ON In [57]: scatter(data[:, 0], data[:, 1], marker=".") > /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axes.py(5738)scatter() 5737 if sym is None and verts is None: -> 5738 raise ValueError('Unknown marker symbol to scatter') 5739 numsides, rotation, symstyle = syms[marker] ipdb> syms {'x': (4, 0.7853981633974483, 2), '^': (3, 0, 0), 'd': (4, 0, 0), 'h': (6, 0, 0), '+': (4, 0, 2), 'o': (0, 0, 3), 'p': (5, 0, 0), 's': (4, 0.7853981633974483, 0), 'v': (3, 3.141592653589793, 0), '8': (8, 0, 0), '<': (3, 4.71238898038469, 0), '>': (3, 1.5707963267948966, 0)}
うーん、少ない。三角形を4種類も入れなくていいから点を入れといて欲しかったなぁ。
ちなみにpdbモードはqで抜けられて、もう一回pdbって打つとAuto-pdbはOFFになる。
さらにちなみに「なんだよどこに使えるシンボルの一覧があるんだよ」に関してはhelp(scatter)したら書いてあったゴメンナサイ。