统计标签并使用matplotlib进行可视化操作,修改路径就可使用
cles = ['park','line','stopline'] #标签名称
num = [0 for i in range(3)] #创建相应的值
ps:输入自己数据的标签值
import json
import os
import numpy as np
import glob
from tqdm import tqdm
import xml.etree.ElementTree as ET
import matplotlib.pyplot as plt
plt.style.use('ggplot') # 设置绘图主题为 ggplot
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置图像字体为黑体,同时可以显示中文
plt.rcParams['axes.unicode_minus'] = False
def Get_json():
list_json = glob.glob(r'F:\my_demo\\file_operation\json_file\\*.json')
cles = ['park','line','stopline'] #标签名称
num = [0 for i in range(3)] #创建相应的值
dit = dict(zip(cles,num)) #转化为字典
for files in tqdm(list_json):
# print(files)
f = open(files)
file = json.load(f)
for i in file['shapes']:
label = i['label']
if label == cles[0]:
dit[label] +=1
elif label == cles[1]:
dit[label] +=1
elif label == cles[2]:
dit[label] +=1
x=list(dit.keys())
y=list(dit.values())
# print(x)
fig = plt.figure(figsize=(8, 5))
#生成柱状图
plt.bar(x,y,0.3,color=['b','y','g','r','m'])
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
# 指定坐标轴名称
plt.xlabel("类别")
plt.ylabel("数量")
for a,b,i in zip(x,y,range(len(x))): # zip 函数
plt.text(a,b+0.05,"%.2f"%y[i],ha='center',fontsize=15)
print(dit)
plt.show()
if __name__ == '__main__':
Get_json()