Python 使用plt子批次时的图形大小

Python 使用plt子批次时的图形大小,python,layout,matplotlib,subplot,Python,Layout,Matplotlib,Subplot,使用plt.subplot时,尝试更改体形大小时遇到一些问题。在下面的代码中,我只得到了标准大小的图,其中包含了我所有的子图(有~100个),显然只是一个额外的空图形大小。我尝试过使用紧凑布局,但没有效果 def plot(reader): channels=[] for i in reader: channels.append(i) plt.figure(figsize=(50,100)) fig, ax = plt.subplots(len(

使用
plt.subplot
时,尝试更改体形大小时遇到一些问题。在下面的代码中,我只得到了标准大小的图,其中包含了我所有的子图(有~100个),显然只是一个额外的空图形大小。我尝试过使用
紧凑布局
,但没有效果

def plot(reader):
    channels=[]
    for i in reader:
        channels.append(i)

    plt.figure(figsize=(50,100))
    fig, ax = plt.subplots(len(channels), sharex=True)

    plot=0    
    for j in reader: 

        ax[plot].plot(reader["%s" % j])
        plot=plot+1

    plt.tight_layout()
    plt.show()
任何帮助都会很好


您可以删除首字母
plt.figure()
。调用
plt.subplots()
时,会创建一个新图形,所以您第一次调用时不会执行任何操作

后台的subplot命令将为您调用
plt.figure()
,并传递任何关键字。因此,只需将
figsize
关键字添加到
subplots()
命令:

def plot(reader):
    channels=[]
    for i in reader:
        channels.append(i)

    fig, ax = plt.subplots(len(channels), sharex=True, figsize=(50,100))

    plot=0    
    for j in reader: 

        ax[plot].plot(reader["%s" % j])
        plot=plot+1

    plt.tight_layout()
    plt.show()

为什么您构建了
频道
列表,但从不使用它?另外,您的
for
循环
读取器
枚举
的完美用例。例如,
对于enumerate(reader)中的plot,j:
。我使用通道列表来确定将有多少子批次。谢谢你的提示如果你不能做
len(reader)
len(list(reader))
,你可以一直做
N_channels=len([1代表u.in channels])
,因为你不需要存储
reader
的实际内容。子批次的文档:谢谢你,
figsize=(50100)
就是我来这里的目的。