当扩展时,是否可以设置图表以显示更多数据?
Matplotlib绘图在调整大小时会自动缩放。要显示特定区域,可以在轴上使用set_xlim
等方法。我有一个类似心电图的实时数据绘图,其y限制已预定义,但如果我扩展窗口或只是拥有大型监视器,我想看到更多沿x轴的数据。
我在一个Pyside应用程序中使用它,我可以在调整大小时更改xlim,但我想要更干净和通用的解决方案。
当扩展时,是否可以设置图表以显示更多数据?
Matplotlib绘图在调整大小时会自动缩放。要显示特定区域,可以在轴上使用set_xlim
等方法。我有一个类似心电图的实时数据绘图,其y限制已预定义,但如果我扩展窗口或只是拥有大型监视器,我想看到更多沿x轴的数据。
我在一个Pyside应用程序中使用它,我可以在调整大小时更改xlim,但我想要更干净和通用的解决方案。
一个实现这个功能的方法是为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()
fig.dpi
作为scale_factor
会使其更好。 - vpoverennov