2013-04-02 189 views
6

假設我有一個繪圖函數需要一個座標軸參數(或返回一個)。是否有一些低級方法來轉置整個繪圖,以便x軸變成y軸,反之亦然?甚至是繪圖之前的座標軸,以便繪圖功能通過依靠座標軸功能正確執行所有操作(標記)?python matplotlib:轉置座標軸的方法

我知道如何做到這一點「手動」,但我想知道是否有一個稍微隱藏的抽象層次,允許這種轉變。

+1

你有你的軸線什麼樣的藝術家? – tacaswell

+1

好問題,我想我可能是特定的,並提到我正在考慮連接到pandas Series(和DataFrame)對象(通過dataframe.plot()...)的gfx繪圖函數。如果您不熟悉panadas繪圖函數,我會回顧一下代碼並稍後嘗試獲取更具體的信息。 – mathtick

+0

讓我擔心的是,有太多的小零件需要單獨切換,任何解決方案最終都會變得非常脆弱。 – tacaswell

回答

6

一個old post(大約2005年)到John Hunter的郵件列表。我懷疑,這是一個足夠稀缺的慾望和棘手的事情,因此它沒有增加意義。

約翰·亨特的用於在現有情節換軸的例子是

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

不低於tcaswell的回答一包多。

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) 
相關問題