需要书写的代码部分
import matplotlib.pyplot as plt
import numpy as np
import json
import matplotlib.font_manager as font_manager
import pandas as pd
#显示matplotlib生成的图形
%matplotlib inline
df = pd.read_json('data/data31557/20200422.json')
#print(df)
grouped=df['name'].groupby(df['weight'])
s = grouped.count()
zone_list = s.index
count_list = s.values
new_zone_list={}
for z,v in zip(zone_list,count_list):
z1=float(z.replace('kg',''))
if z1<=45.0:
if '<=45kg' in new_zone_list:
a=new_zone_list['<=45kg']
new_zone_list['<=45kg']=v+a
else:
new_zone_list['<=45kg']=v
elif z1>45.0 and z1<=50.0:
if '45~50kg' in new_zone_list:
a=new_zone_list['45~50kg']
new_zone_list['45~50kg']=v+a
else:
new_zone_list['45~50kg']=v
elif z1 >50.0 and z1 <=55.0:
if '50~55kg' in new_zone_list:
a=new_zone_list['50~55kg']
new_zone_list['50~55kg']=v+a
else:
new_zone_list['50~55kg']=v
else:
if '>55kg' in new_zone_list:
a=new_zone_list['>55kg']
new_zone_list['>55kg']=v+a
else:
new_zone_list['>55kg']=v
print(new_zone_list)
if new_zone_list:
zone_list = list(new_zone_list.keys())
count_list = list(new_zone_list.values())
# # 设置显示中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
plt.figure(figsize=(10,10))
# plt.bar(range(len(count_list)), count_list,color='r',tick_label=zone_list,facecolor='#9999ff',edgecolor='white')
explode=0.1,0.1,0,0
plt.pie(count_list,explode=explode,labels=zone_list,autopct='%1.1f%%',shadow=True,startangle=30)
# 这里是调节横坐标的倾斜度,rotation是度数,以及设置刻度字体大小
# plt.xticks(rotation=45,fontsize=20)
# plt.yticks(fontsize=20)
plt.legend()
plt.title('''《青春有你2》选手体重分析''',fontsize = 24)
plt.savefig('/home/aistudio/work/result/pie_result2.jpg')
plt.axis('equal')
plt.show()