美文网首页
pandas汇总告警并折线图展示

pandas汇总告警并折线图展示

作者: 余生还长你别慌 | 来源:发表于2019-08-10 22:45 被阅读0次

    输入的是统计区域内的每日的所有告警汇总,然后处理后得到日期和每日的告警总数,两个方法来进行折线图展示,方法一是用pandas.plot直接画图,但是测试发现横轴不显示日期,纵轴不显示label,明天重点研究下。方法二是用matplot直接画图,这个不如pandas.plot方便,但暂时能满足要求,先记录下吧,明天重点重构下代码,研究下pandas.plot。

    # -*- encoding=UTF-8 -*-
    __author__ = 'wjj1982'
    __date__ = '2019/8/10 20:45'
    __product__ = 'PyCharm'
    __filename__ = 'test'
    
    import pandas as pd
    import matplotlib.pyplot as plt
    plt.rcParams['font.sans-serif'] = ['SimHei']
    
    filename1 = '6大营业厅告警统计_2019-08-05-14-55-19-019.xlsx'
    filename2 = '6大营业厅告警统计_2019-08-06-17-37-28-028.xlsx'
    filename3 = '6大营业厅告警统计_2019-08-07-10-13-29-029.xlsx'
    filename4 = '6大营业厅告警统计_2019-08-08-20-15-40-040.xlsx'
    filename5 = '6大营业厅告警统计_2019-08-09-09-10-31-031.xlsx'
    
    filename6 = '精品区域告警统计_2019-08-05-14-55-19-019.xlsx'
    filename7 = '精品区域告警统计_2019-08-06-17-37-28-028.xlsx'
    filename8 = '精品区域告警统计_2019-08-07-10-13-29-029.xlsx'
    filename9 = '精品区域告警统计_2019-08-08-20-15-40-040.xlsx'
    filename10 = '精品区域告警统计_2019-08-09-09-10-31-031.xlsx'
    
    filename_list = [filename1, filename2, filename3, filename4, filename5, filename6, filename7, filename8, filename9,
                     filename10]
    date_list = []
    fm_sum_yingyeting = []
    fm_sum_jingpinqu = []
    # print(int(filename_list[1].split('name')[1]))
    
    for index, filename in enumerate(filename_list):
        if index < 5:
            date_list.append(filename.split('_')[1].split('-')[1] + '-' + filename.split('_')[1].split('-')[2])
            fm_sum_yingyeting.append(sum(pd.read_excel(filename, sheet_name='删除断和掉电告警后分类统计')['计数']))
        else:
            fm_sum_jingpinqu.append(sum(pd.read_excel(filename, sheet_name='删除断和掉电告警后分类统计')['计数']))
    
    df_fm_yingyeting = []
    df_fm_jingpinqu = []
    for i in range(len(date_list)):
        df_fm_yingyeting.append([date_list[i], fm_sum_yingyeting[i]])
        df_fm_jingpinqu.append([date_list[i], fm_sum_jingpinqu[i]])
    
    df_fm_yingyeting = pd.DataFrame(df_fm_yingyeting, columns=['日期', '告警总数'])
    df_fm_jingpinqu = pd.DataFrame(df_fm_jingpinqu, columns=['日期', '告警总数'])
    
    # 设置图框的大小
    fig = plt.figure(figsize=(10,6))
    # 绘图
    plt.plot(df_fm_yingyeting['日期'], # x轴数据
             df_fm_yingyeting['告警总数'], # y轴数据
             linestyle = '-', # 折线类型
             linewidth = 2, # 折线宽度
             color = 'steelblue', # 折线颜色
             marker = 'o', # 点的形状
             markersize = 2, # 点的大小
             markeredgecolor='black', # 点的边框色
             markerfacecolor='steelblue') # 点的填充色
    
    # 添加标题和坐标轴标签
    plt.title('VIP营业厅每日告警汇总')
    plt.xlabel('日期')
    plt.ylabel('告警总数')
    
    # 剔除图框上边界和右边界的刻度
    plt.tick_params(top = 'off', right = 'off')
    
    # 网格显示
    plt.grid(ls='--')
    # 显示图形
    plt.show()
    

    相关文章

      网友评论

          本文标题:pandas汇总告警并折线图展示

          本文链接:https://www.haomeiwen.com/subject/cnbdjctx.html