matplotlibで線分を描く

こう書くとAttributeError: 'Line2D' object has no attribute 'get_patch_transform'になる。

line = matplotlib.lines.Line2D([0, 1], [1, 0])
ax.add_patch(line)

原因は、artists — Matplotlib v1.1.0 documentationをちゃんと読めば分かることだが「Line2DはPatchのサブクラスではない」ということ。ax.add_lineを使う必要がある。

描画周りのAPIとか、別に速度が問われるわけでもないんだから「期待しているものと違うものが渡されたら即ValueError」って設計にしたほうが親切だと思うがね。