Day3-《青春有你2》选手数据分析

需要书写的代码部分

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

原创文章 13 获赞 5 访问量 1万+

猜你喜欢

转载自blog.csdn.net/cgq081616/article/details/105815561