番外:QQ群月活跃度Top10

import re
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
import time

'''
QQ群月活跃度排名,聊天记录可从QQ群导出,基于用户发言次数
'''
def compare_time(start_t, end_t):
    s_time = time.mktime(time.strptime(start_t, '%Y-%m-%d'))
    e_time = time.mktime(time.strptime(end_t, '%Y-%m-%d'))
    if float(s_time) >= float(e_time):
        return True
    return False

record_list = []
id_count = {}
with open(r'D:\Program Files\Users\tutu\Desktop\51904457.txt', 'r', encoding='utf-8') as f:
    for line in f.readlines():
        date_ = re.findall(r'\d{4}-\d{2}-\d{2}', line)
        id_ = re.findall(r'\((\d{4,})\)|<(.*?@.*?)>', line)
        nick_name = re.findall(r':\d{2} (.*?)\(|:\d{2} (.*?)<', line)
        if date_ and id_ and nick_name:
            if id_[0][0] != "" and id_[0][0] != "10000":
                record_list.append([date_[0], id_[0][0], nick_name[0][0]])
            elif id_[0][1] != "" and id_[0][1] != "10000":
                record_list.append([date_[0], id_[0][1], nick_name[0][1]])


end_time = '2017-06-01'
for i in record_list:
    if compare_time(i[0], end_time):
        id_count[i[2]] = id_count.setdefault(i[2], 0) + 1

all_nick = sorted(id_count, key=id_count.get, reverse=True)
nick_count = [id_count[n] for n in all_nick]
nick_len = np.arange(10)

color = cm.jet(np.array(nick_count)/max(nick_count))
plt.rc('font', family='STXihei', size=15)
fig = plt.figure(figsize=(8, 6))
plt.barh(nick_len, nick_count[:10], 0.5, color=color)
plt.yticks(nick_len + 0.4, all_nick, rotation=0)
plt.ylabel("人物")
plt.xlabel("活跃度")
plt.title("本群6月活跃Top10")
plt.legend(['活跃度'], loc='upper right')
# 设置背景网格线的颜色,样式,尺寸和透明度
plt.grid(color='#95a5a6', linestyle='--', linewidth=1, axis='y', alpha=0.4)
plt.show()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 有时候还是会不自觉的以为我等着会有人通知我,我躺着会有人给我送水,我不讲话会有人懂我。 早就过了会爱做梦的...
    本味生辉阅读 1,133评论 0 1
  • 一排排整齐有序的街灯 散发着暖黄的光圈格外显眼 灯光柔柔的洒在身上 不料冷冷的秋风似乎更有劲些 心跳动的频率跟着快...
    白运参阅读 337评论 0 0
  • 人活着真不易!社会的复杂,看不透的人心,经历不完的坎坷,躲不过的无奈,想不到的明天… 蓝天白云下,夕阳余晖中 独坐...
    相互扶持zq阅读 177评论 0 2
  • 今天看见一道神题:()()()24678,让填空! 果然奇葩,24678到底是个什么鬼? “(门前大桥下)(游过一...
    智启航阅读 317评论 0 0