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

python绘图 同时被 2 个专栏收录
1 篇文章 0 订阅
1 篇文章 0 订阅
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)

效果图如下

  • 3
    点赞
  • 0
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值