# -*- coding=utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import re
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
def draw(x, y, label=None, align='center', color='green', ecolor='black',height=0.2):
b = ax.barh(y, x, align=align, color=color, ecolor=ecolor, height=height, label=label)
# 添加数据标签
for rect in b:
w = rect.get_width()
ax.text(w, rect.get_y() + rect.get_height() / 2, '%d' % w, ha='left', va='center')
fig, ax = plt.subplots()
items = [u'项目一金',
u'项目一木',
u'项目一水',
u'项目一火',
u'项目一土',
u'项目一阴',
u'项目一阳',
u'项目一加',
u'项目一五',
u'项目一行'
]
itemslen = len(items)
"""初始化字典"""
resdir = {}
for i in range(itemslen):
resdir[items[i]] = {'Succ':0,'Fail':0}
path = r'C:\Users\TNT\Desktop\1.txt'
with open(path, 'r') as f:
for line in f:
line = line.decode('gbk')
for i in range(itemslen):
if re.search(items[i], line):
if re.search('PASS', line):
resdir[items[i]]['Succ'] += 1
else:
resdir[items[i]]['Fail'] += 1
else:
continue
x = [resdir[items[i]]['Succ'] for i in range(itemslen)]
x2 = [resdir[items[i]]['Fail'] for i in range(itemslen)]
y_pos = np.arange(len(items))
distance = 0.2
draw(x, y_pos, label='Succ')
draw(x2, y_pos+distance, label='Fail', color='red')
ax.set_yticks(y_pos+distance)
ax.set_yticklabels(items)
ax.invert_yaxis() # labels read top-to-bottom
ax.set_xlabel(u'次数统计/天')
ax.set_title('filename')
plt.legend()
plt.show()
python 画柱状图 尝试
最新推荐文章于 2024-03-03 21:21:11 发布