1. 程式人生 > >python 繪製百度實時統計柱狀圖

python 繪製百度實時統計柱狀圖


import csv
import matplotlib.pyplot as plt
import jieba.analyse

def autolabel(rects):
    for rect in rects:
        height = rect.get_height()
        plt.text(rect.get_x()+rect.get_width()/2, height, height, ha='center', va='bottom')

filename = 'm.csv'
seacherWord=""
num=20
# 開啟檔案
with open(filename,'r',encoding='UTF-8') as f:
    reader = csv.reader(f)
    # 讀取表頭資料。
    header_row = next(reader)
    for row in reader:
        seacherWord=seacherWord+row[5]
#結巴分詞
tags = jieba.analyse.extract_tags(seacherWord, topK=num, withWeight=False)

with open(filename,'r',encoding='UTF-8') as f:
    reader = csv.reader(f)
    # 讀取表頭資料。
    header_row = next(reader)
    visitTime=list(range(num))
    visitNum=list(range(num))
    for row in reader:
        for i in range(len(tags)):
            if tags[i] in row[5]:
                if (row[10] !="未知") and (row[10] !="正在訪問s") and (row[10] !=" "):
                    visitNum[i] += 1
                    visitTime[i] += int(row[10].rstrip('s'))
print(tags)
print(visitNum)
print(visitTime)
plt.rc('font', family='SimHei', size=8)#設定中文顯示,否則出現亂碼!
a=plt.bar(range(len(visitTime)), visitTime, color='rgby', tick_label=tags)
autolabel(a)
plt.title('PC搜尋最多關鍵字的瀏覽時間/秒')
plt.legend()
plt.show()