json文件中内容如下:
代码如下:
"""
数据集分析
"""
import json
from collections import Counter
import numpy as np
import matplotlib.pyplot as plt
# 初始化一个保存类别信息的列表
key_class_list = []
# 打开json文件
json_file = json.load(open('./data/annotations.json'))
# json文件中的元素annotations
annotations = json_file['annotations']
# 元素annotations是一个列表,列表中每个元素都是字典
for image in annotations:
category_id = image['category_id']
key_class_list.append(category_id) # [6, 18, 14, 5, 7, 5, 5, 7, 12, 12, 10, 10, 4, 7, 50, 50, 11, 5, 7...]
print("数据集大小:", len(key_class_list))
print("key_class_list:", key_class_list)
# Counter函数:将label与num分离,存入字典.Counter函数作用就是在一个数组内,遍历所有元素,将元素出现的次数记下来
count = Counter(key_class_list)
print(count)
# 每个类别的标签
class_label = list(count)
print(class_label)
# 转numpy
class_label = np.array(class_label)
print(class_label)
# 每个类别出现的次数
number = count.values()
print(number)
# 对类别信息与类别数目进行可视化
plt.title("plot_data")
plt.ylabel('number')
plt.xlabel('class')
plt.bar(class_label, number, color='b')
plt.show()
效果: