python画多个子图拼接在一起(示例代码)

主要是要保证每个子图的legend和字体大小、刻度大小均正常显示:

import numpy as np
import matplotlib.pyplot as plt
import datetime
def pic2(t_u, res1, res2,k1,k2,k1s,k2s):
    # 绘制图像
    plt.rcParams['font.family'] = 'serif'
    plt.rcParams['font.serif'] = 'Times New Roman'
    fig, axes = plt.subplots(nrows=2, ncols=1,figsize=(6.4, 5.5)) #默认:[6.4 4.8]
    fig_size = fig.get_size_inches()
    print("图的大小:", fig_size)
    plt.grid(linestyle="--", color="gray", linewidth="0.5", axis="both")

    lines1, labels1 = [], []
    for i in range(len(res1[:, 0])):
        line, = axes[0].plot(t_u, res1[i, :], markerfacecolor='none')
        lines1.append(line)
        labels1.append(f'$\kappa_1=${k1s[i]}, $\kappa_2=${k2}')
    axes[0].legend(lines1, labels1, loc='best', ncol=1)  # Legend for the first subplot
    axes[0].grid(linestyle="--", color="gray", linewidth="0.5", axis="both")
    axes[0].tick_params(axis='both', labelsize=12)
    # axes[0].set_xlabel('Delay (s)', fontsize=15, fontweight='bold', labelpad=0)
    # axes[0].set_ylabel('Delay utility', fontsize=15, fontweight='bold', labelpad=0)
    lines2, labels2 = [], []
    for i in range(len(res2[:, 0])):
        line, = axes[1].plot(t_u, res2[i, :], markerfacecolor='none',)
        lines2.append(line)
        labels2.append(f'$\kappa_1=${k1}, $\kappa_2=${k2s[i]}')
    axes[1].legend(lines2, labels2, loc='best', ncol=1)  # Legend for the second subplot
    axes[1].tick_params(axis='both', labelsize=12)
    plt.grid(linestyle="--", color="gray", linewidth="0.5", axis="both")
    plt.xlabel('Delay (s)', fontsize=17, fontweight='bold', labelpad=0)
    # plt.ylabel('Delay utility', fontsize=17, fontweight='bold', labelpad=0)
    fig.text(0.03, 0.4,'Delay utility', fontsize=17, fontweight='bold', rotation='vertical')
    # plt.title('Total QoE at Time Slot')
    a = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
    plt.savefig("utility_kappa_" + a, dpi=600, bbox_inches='tight', pad_inches=0.01)
    # 显示图形
    plt.show()

运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值