軸の引数を取る (または返す) プロット関数があるとします。x軸がy軸になり、その逆になるようにプロット全体を転置するための低レベルの方法はありますか? または、プロット関数が軸関数に依存してすべてを正しく (ラベル付け) 行うように、プロットの前の軸でさえありますか?
これを「手動で」行う方法は知っていますが、この種の変換を可能にする、わずかに隠されたレベルの抽象化があるかどうか疑問に思っています。
軸の引数を取る (または返す) プロット関数があるとします。x軸がy軸になり、その逆になるようにプロット全体を転置するための低レベルの方法はありますか? または、プロット関数が軸関数に依存してすべてを正しく (ラベル付け) 行うように、プロットの前の軸でさえありますか?
これを「手動で」行う方法は知っていますが、この種の変換を可能にする、わずかに隠されたレベルの抽象化があるかどうか疑問に思っています。
John Hunter からのメーリング リストへの古い投稿(2005 年頃)。これは十分にまれな欲求であり、それを行うのに十分なトリッキーであるため、当時は意味が追加されていなかったと思います.
既存のプロットで軸を交換するためのジョン・ハンターの例は
line2d = plot(rand(10))[0]
def swap(xdata, ydata):
line2d.set_xdata(ydata)
line2d.set_ydata(xdata)
draw()
swap(line2d.get_xdata(), line2d.get_ydata())
tcaswell's answer のラップにすぎません。
def swap(*line_list):
"""
Example
-------
line = plot(linspace(0, 2, 10), rand(10))
swap(line)
"""
for lines in line_list:
try:
iter(lines)
except:
lines = [lines]
for line in lines:
xdata, ydata = line.get_xdata(), line.get_ydata()
line.set_xdata(ydata)
line.set_ydata(xdata)
line.axes.autoscale_view()
例
line = plot(linspace(0, 2, 10), rand(10))
swap(line)