2013-04-02 55 views
6

軸の引数を取る(または1を返す)プロット関数があるとします。 x軸がy軸になり、その逆もあるようにプロット全体を転置するための低レベルの方法がありますか?またはプロットの前の軸さえも、プロット関数は軸関数に依存してすべて正しく(ラベリング)するようにしますか?python matplotlib:軸を転置する方法

私はこれを「手動で」行う方法を知っていますが、この種の変換を可能にする抽象的なレベルがわずかに隠れているのだろうかと思います。

+1

? – tacaswell

+1

良い質問ですが、具体的に言えば、pandas Series(およびDataFrame)オブジェクトに(dataframe.plot()を介して...)接続されたgfxプロット関数を考えています。後でコードを見直して、後でpanadasプロット関数に慣れていない場合は、より具体的な情報を得ようとします。 – mathtick

+0

これについて私が心配しているのは、個別に切り替える必要があるビット数が少なすぎ、解決策が本当に脆弱になるということです。 – tacaswell

答えて

6

old post(2005年頃)からジョンハンターのメーリングリストへ。私はこれが欲望とそれを行うのに十分なほど珍しいと思っています。 既存プロットに軸を入れ替えるための

ジョン・ハンターの例では、tcaswellの答えのためにラップを超えない

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()) 
0

ました。あなたの軸に持っていないアーティストのどのよう

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) 
関連する問題