今天和大家分享的是最近在跟的一个百度飞桨的项目的一部分,对爬取青你2成员的部分数据可视化。主要用到的模块是matplotlib的pyplot。
读取爬取的json数据,绘制选手区域分布柱状图
import matplotlib.pyplot as plt
import numpy as np
import json
import matplotlib.font_manager as font_manager
#显示matplotlib生成的图形
%matplotlib inline
with open('data/data31557/20200422.json', 'r', encoding='UTF-8') as file:
json_array = json.loads(file.read())
#绘制小姐姐区域分布柱状图,x轴为地区,y轴为该区域的小姐姐数量
zones = []
for star in json_array:
zone = star['zone']
zones.append(zone)
print(len(zones))
print(zones)
zone_list = []
count_list = []
for zone in zones:
if zone not in zone_list:
count = zones.count(zone)
zone_list.append(zone)
count_list.append(count)
print(zone_list)
print(count_list)
# 设置显示中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
plt.figure(figsize=(10,8))
plt.bar(range(len(count_list)), count_list,color='r',tick_label=zone_list,facecolor='#9999ff',edgecolor='white')
# 这里是调节横坐标的倾斜度,rotation是度数,以及设置刻度字体大小
plt.xticks(rotation=45,fontsize=10)
plt.yticks(fontsize=10)
plt.legend()
plt.title('''《青春有你2》参赛选手''',fontsize = 24)
plt.savefig('/home/aistudio/work/result/bar_result.jpg')
plt.show()
运行效果图如下:从条形图可以看出选手的地区分布,四川,山东,浙江和安徽这四个省份参加的选手还是比较多。
对选手体重分布进行可视化,绘制饼状图。
df = pd.read_json('data/data31557/20200422.json')
weight=pd.to_numeric(df['weight'].replace('[k][g]','',regex=True))
bins=[0,45,50,55,1000]
labels=['<=45kg','45-50kg','50-5kg','>55kg']
counts=pd.cut(weight,bins,labels=labels)
s=counts.value_counts()
zone_list=s.index
count_list=s.values
# 设置显示中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
plt.figure(figsize=(10,8))
explode=(0.1,0.1,0,0)
plt.pie(count_list,explode=explode,labels=labels,autopct='%1.1f%%',shadow=True,startangle=90)
# 这里是调节横坐标的倾斜度,rotation是度数,以及设置刻度字体大小
plt.xticks(rotation=45,fontsize=20)
plt.yticks(fontsize=20)
plt.legend()
plt.title('''《青春有你2》参赛选手''',fontsize = 24)
plt.savefig('/home/aistudio/work/result/bar_result03.jpg')
plt.show()
运行效果图如下:从数据可以清晰看出青你2的成员的体重分布,大部分女孩还是比较瘦的,小于等于45KG的占了60.6%。
假如您觉得还不错,扫码帮忙关注一下呗: