2012-11-11 27 views
5

展開すると、より多くのデータを表示するようにプロットを設定できますか?サイズ変更matlotlibのビュー境界を自動的に変更

Matplotlibは、サイズ変更時に縮尺をプロットします。特定の領域を表示するには、軸上でset_xlimなどを使用できます。私はリアルタイムデータを表示するような陰影のようなプロットを持っていますが、yの限界値はあらかじめ定義されていますが、ウィンドウを拡大したり、大きなモニタを持っていれば、

私はpysideアプリでそれを使用しています。私はサイズ変更時にxlimを変更することができましたが、もっとクリーンで包括的なソリューションが必要です。

答えて

7

これを行う1つの方法は、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