7

展開したときに、より多くのデータを表示するようにプロットを設定することは可能ですか?

Matplotlibは、サイズを変更するとスケールをプロットします。set_xlim軸上で使用できる特定の領域などを表示します。リアルタイムデータを示す心電図のようなプロットがあり、そのy制限は事前定義されていますが、ウィンドウを拡大したり、大きなモニターを使用したりする場合は、xに沿ってより多くのデータを表示したいと思います。

pysideアプリで使用していて、サイズ変更時にxlimを変更することもできますが、よりクリーンで汎用的なソリューションが必要です。

4

1 に答える 1

9

これを行う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()
于 2012-11-11T14:23:33.623 に答える