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()
番外:QQ群月活跃度Top10
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...