2013-04-02 3 views
6

축 인수를 사용하거나 반환하는 플로팅 함수가 있다고 가정합니다. x 축은 y 축이되고 그 반대도 마찬가지가되도록 전체 플롯을 조 변경하는 저수준 방법이 있습니까? 또는 플롯하기 전에 축을 사용하여 플로팅 함수가 축 기능을 사용하여 모든 것을 정확히 수행하도록합니다 (레이블 지정)?python matplotlib : 축을 바꾸는 방법

"수동으로"이 작업을 수행하는 방법을 알고 있지만이 종류의 변환을 허용하는 약간 은폐 된 추상화 수준이 있는지 궁금합니다.

+1

당신이 당신의 축에 예술가의 어떤 종류가 있나요 예? – tacaswell

+1

좋은 질문입니다. 구체적이고, 팬더 시리즈 (및 DataFrame) 객체 (dataframe.plot()을 통해 ...)에 첨부 된 gfx 플롯 기능을 생각하고 있다고 말할 수 있습니다. 나중에 코드를 검토하고 나중에 panadas 플롯 기능에 익숙하지 않은 경우 자세한 정보를 얻으려고합니다. – mathtick

+0

나에 대해 걱정하는 것은 개별적으로 전환해야 할 작은 비트와 조각이 너무 많아서 솔루션이 실제로 부서지기 쉽다는 것입니다. – tacaswell

답변

6

old post (2005 년경)은 John Hunter의 메일 링리스트에 있습니다. 나는 이것이 희소 한 욕망과 까다 롭고 충분히 이해할 수 없다고 생각한다. 기존 음모에 축 스와핑

존 헌터의 예는 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) 
관련 문제