Python解析json并统计每类文件标签数

统计标签并使用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()

你可能感兴趣的:(python,json,深度学习,matplotlib)