2012-11-11 2 views
5

확장시 더 많은 데이터를 표시하도록 플롯을 설정할 수 있습니까?크기 변경 matlotlib에서보기 경계를 자동으로 변경합니다.

Matplotlib는 크기를 조정할 때 크기를 표시합니다. 특정 영역을 표시하려면 축에 set_xlim 등을 사용할 수 있습니다. 나는 실시간 데이터를 보여주는 심플한 음모를 가지고 있는데, y 한계는 미리 정의되어 있지만, 창을 확장하거나 큰 모니터를 사용하면 x를 따라 더 많은 데이터를보고 싶습니다.

임 pyside 애플 리케이션에서 그것을 사용하고 난 그냥 크기를 변경 xlim 수 있지만 더 깨끗하고 일반적인 솔루션을 원한다.

답변

7

이 작업을 수행하는 한 가지 방법은 resize_event에 대한 처리기를 구현하는 것입니다. 이것이 어떻게 수행 될 수 있는지에 대한 간단한 예가 있습니다. 필요에 따라 수정할 수 있습니다 :

import numpy as np 
import matplotlib.pyplot as plt 

def onresize(event): 
    width = event.width 
    scale_factor = 100. 
    data_range = width/scale_factor 
    start, end = plt.xlim() 
    new_end = start+data_range 
    plt.xlim((start, new_end)) 

if __name__ == "__main__": 

    fig = plt.figure() 
    ax = fig.add_subplot(111) 
    t = np.arange(100) 
    y = np.random.rand(100) 
    ax.plot(t,y) 
    plt.xlim((0, 10)) 
    cid = fig.canvas.mpl_connect('resize_event', onresize) 
    plt.show() 
+1

'scale_factor'로 'fig.dpi'를 사용하면 더 좋게 만듭니다. – mindless

관련 문제