python plt 绘图,双轴设置刻度,步长,使用栅格,以base64格式输出

本文介绍了一个用于绘制网络流量数据的Python函数。该函数利用matplotlib库生成图表,展示随时间变化的字节和数据包数量,并支持自定义展示in_bytes、out_bytes或all_bytes等不同类型的流量数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

def make_plt(context, host, status):
    # 定义y轴展示信息字典
    label1_dict = {'0': 'in_bytes', '1': 'out_bytes', '2': 'all_bytes'}
    label2_dict = {'0': 'in_packets', '1': 'out_packets', '2': 'all_packets'}
    path = MEDIA_ROOT + 'images/' + '0.png'
    # 设置横纵坐标的名称以及对应字体格式
    font_xy = {'family': 'Times New Roman', 'weight': 'normal', 'size': 120}
    # 生成一个(200, 50)大小的图像
    plt.figure(figsize=(220, 50))
    # 获得当前图像的坐标对象
    ax = plt.gca()
    # 将数据填充进图像
    ax.plot(context['time_list'], context['bytes_list'], lw=6, color='blue', label=label1_dict[status])
    ax.set_ylabel(label1_dict[status], fontsize=120)
    # 设置y轴坐标从0开始
    if context['bytes_list']:
        plt.ylim((0, max(context['bytes_list'])))
    # 设置刻度大小
    plt.tick_params(labelsize=80)
    # 设置注释放置位置
    plt.legend(loc=2, fontsize=100)
    # 使用栅格
    plt.grid(color="black", which="both", linestyle=':', linewidth=1)
    plt.fill(color='g', alpha=0.3)

    # 复制兄弟轴
    ax2 = ax.twinx()
    ax2.plot(context['time_list'], context['packets_list'], lw=6, color='red', label=label2_dict[status])
    ax2.set_ylabel(label2_dict[status], fontsize=120)
    # 获得x轴的坐标范围
    start, end = ax.get_xlim()
    # 设置x轴刻度的显示步长
    plt.xticks(np.linspace(start, end, 9))
    # 设置坐标轴名称
    plt.title(host, font_xy)
    # 设置刻度大小
    plt.tick_params(labelsize=80)
    # 剔除图框上边界和右边界的刻度
    plt.tick_params(top='on', right='on')
    # 设置注释放置位置
    plt.legend(loc=0, fontsize=100)

效果图如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值