Matplotlib 子图太短

如何解决Matplotlib 子图太短

我正在尝试渲染带有子图的图。每个子图都被垂直压缩,我不明白为什么。我试过设置纵横比,但这似乎使它更窄,没有解决图像不够高而无法使用的问题。我正在使用 tight_layout输出大小足以让它更大。我知道我可以使用网格布局更具体地设置图像的大小,但我觉得我缺少一些更简单的东西,因为这对我的任何带有子图的类似图都没有问题。

谢谢!

My Plot Output

def plot_at_all_intervals_mod(series,series_name,series_file_name,is_date,write,ROLL_NUM = 4):
    plt.close()
    fig,axs = plt.subplots(4,2)
    
#     for row in axs:
#         for ax in row:
#             ax.set_aspect('equal')
    
    #absolute
    if is_date:
        my_range = (unix_time_to_year(min(series)),unix_time_to_year(max(series)))
        values,bins,_ = axs[0,0].hist(unix_time_to_year(series),log=False,bins=200,range=my_range)
    else:
        my_range = (min(series) / SECONDS_IN_A_YEAR,max(series) / SECONDS_IN_A_YEAR) 
        values,0].hist(series / SECONDS_IN_A_YEAR,range=my_range)
    bins = bins.tolist()[:-1]
    values = circular_moving_average(values.tolist(),ROLL_NUM)
    axs[0,0].plot(bins,values)
    axs[0,0].set_xlabel('Absolute Time')
    axs[0,0].set_ylabel('Number of Logs')
    axs[0,0].set_title(f'distribution of {series_name} \nOver Time')
    
    #year
    values,1].hist(unix_time_to_day_of_year(series),bins=365*24)
    bins = bins.tolist()[:-1 ]
    values = circular_moving_average(values.tolist(),1].plot(bins,1].set_xlabel('Day of Year (Starting Jan 1st)')
    axs[0,1].set_ylabel('Number of Logs')
    axs[0,1].set_title(f'distribution of {series_name} \nModulo Year')
    
    #week
    values,_ = axs[1,0].hist(unix_time_to_day_of_week(series),bins=7*24*60)
    bins = bins.tolist()[:-1]
    values = circular_moving_average(values.tolist(),ROLL_NUM)
    axs[1,values)
    axs[1,0].set_xlabel('Day of Week (Starting at 0=Monday)')
    axs[1,0].set_ylabel('Number of Logs')
    axs[1,0].set_title(f'distribution of {series_name} \nOver Time Modulo Week')
    
    #day
    values,1].hist(unix_time_to_time_of_day(series),bins=24*60)
    bins = bins.tolist()[:-1 * ROLL_NUM]
    values = moving_average(values.tolist(),1].set_xlabel('Hour of Day')
    axs[1,1].set_ylabel('Number of Logs')
    axs[1,1].set_title(f'distribution of {series_name} \nOver Time Modulo Day')
    
    #hour
    values,_ = axs[2,0].hist(unix_time_to_minute_in_hour(series),bins=60*60)
    bins = bins.tolist()[:-1]
    values = circular_moving_average(values.tolist(),ROLL_NUM)
    axs[2,values)
    axs[2,0].set_xlabel('Minute of Hour')
    axs[2,0].set_ylabel('Number of Logs')
    axs[2,0].set_title(f'distribution of {series_name} \nOver Time Modulo Hour')
    
    #10 minutes
    values,1].hist(unix_time_to_minute_in_hour(series),1].set_xlabel('Minute of Hour')
    axs[2,1].set_ylabel('Number of Logs')
    axs[2,1].set_title(f'distribution of {series_name} \nOver Time Modulo Hour')
    
    #minute
    ROLL_NUM = 1
    values,_ = axs[3,0].hist(unix_time_to_second_in_minute(series),bins=60)
    bins = bins.tolist()[:-1 * ROLL_NUM]
    values = moving_average(values.tolist(),ROLL_NUM)
    axs[3,values)
    axs[3,0].set_xlabel('Second of Minute')
    axs[3,0].set_ylabel('Number of Logs')
    axs[3,0].set_title(f'distribution of {series_name} \n Over Time Modulo Minute')
    
    fig.suptitle(f'distribution of {series_name} Over Different Periods',fontsize=16)
    fig.tight_layout()
    fig.set_size_inches(20,20)
    fig.show()
    if write:
        fig.savefig(f'all-times-{series_file_name}.png')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?