【数据分析】统计json文件中类别信息并可视化

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()

效果:

 

 

 

 

 

 

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Python爬虫获取JSON数据并进行可视化的示例代码: ```python import requests import matplotlib.pyplot as plt # 发起请求获取JSON数据 url = 'https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/list?modules=statisGradeCityDetail,diseaseh5Shelf' response = requests.get(url, verify=False) json_data = response.json()['data'] china_data = json_data['diseaseh5Shelf']['areaTree'][0]['children'] # 解析数据 data_set = [] for i in china_data: data_dict = {} data_dict['province'] = i['name'] data_dict['nowConfirm'] = i['total']['nowConfirm'] data_dict['dead'] = i['total']['dead'] data_dict['heal'] = i['total']['heal'] data_set.append(data_dict) # 可视化数据 provinces = [data['province'] for data in data_set] now_confirms = [data['nowConfirm'] for data in data_set] deaths = [data['dead'] for data in data_set] recoveries = [data['heal'] for data in data_set] plt.figure(figsize=(10, 6)) plt.bar(provinces, now_confirms, label='Now Confirmed') plt.bar(provinces, deaths, label='Deaths', bottom=now_confirms) plt.bar(provinces, recoveries, label='Recoveries', bottom=[now + death for now, death in zip(now_confirms, deaths)]) plt.xlabel('Provinces') plt.ylabel('Number of Cases') plt.title('COVID-19 Statistics in China') plt.legend() plt.xticks(rotation=90) plt.show() ``` 这段代码首先使用`requests`库发起请求获取JSON数据,然后解析数据并将需要的信息存入一个列表。接下来,使用`matplotlib`库进行可视化,通过条形图展示各个省份的现存确诊、死亡和治愈人数。最后,使用`plt.show()`显示图表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值