Matplotlib 在调整matlotlib大小时自动更改视图边界

Matplotlib 在调整matlotlib大小时自动更改视图边界,matplotlib,Matplotlib,是否可以设置绘图以在展开时显示更多数据 Matplotlib在调整大小时打印比例。要显示特定区域,可以在轴上使用setxlim等。我有一个类似ecg的图,显示实时数据,它的y极限是预定义的,但如果我展开窗口或只是有一个大监视器,我想看到更多的x轴数据 我在pyside应用程序中使用它,我可以在调整大小时更改xlim,但我需要更干净和通用的解决方案。一种方法是为resize\u事件实现一个处理程序。下面是一个简短的示例,说明如何做到这一点。您可以根据需要对其进行修改: import numpy a

是否可以设置绘图以在展开时显示更多数据

Matplotlib在调整大小时打印比例。要显示特定区域,可以在轴上使用
setxlim
等。我有一个类似ecg的图,显示实时数据,它的y极限是预定义的,但如果我展开窗口或只是有一个大监视器,我想看到更多的x轴数据


我在pyside应用程序中使用它,我可以在调整大小时更改xlim,但我需要更干净和通用的解决方案。

一种方法是为
resize\u事件实现一个处理程序。下面是一个简短的示例,说明如何做到这一点。您可以根据需要对其进行修改:

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()

使用
fig.dpi
作为
scale\u factor
会使它变得更好