【飞浆paddlepaddle】python—matplotlib库实现数据可视化---【百度7日打卡训练营day_3】

matplotlib—柱形图bar()和饼图pie()

从昨天在百度百科爬取到的《青春有你2》参赛选手的数据,对选手的地区,体重等信息进行数据可视化。
在这里插入图片描述

  • 部分数据展示(JSON格式):
    在这里插入图片描述

绘制地区分布柱形图

话不多说,直接上代码。

import matplotlib.pyplot as plt
import numpy as np 
import json
import matplotlib.font_manager as font_manager

#显示matplotlib生成的图形
%matplotlib inline

df = pd.read_json('data/data31557/20200422.json')

grouped=df['name'].groupby(df['zone'])
s = grouped.count()

zone_list = s.index
count_list = s.values

# 设置显示中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体

plt.figure(figsize=(20,15))

plt.bar(range(len(count_list)), count_list,color='r',tick_label=zone_list,facecolor='#9999ff',edgecolor='white')

# 这里是调节横坐标的倾斜度,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_result.jpg')

# 显示图片
# plt.show()

参赛选手地区分布情况柱形图:
在这里插入图片描述

绘制体重柱形图

with open('data/data31557/20200422.json', 'r', encoding='UTF-8') as file:
         json_array = json.loads(file.read())

#绘制小姐姐体重分布柱状图,x轴为地区,y轴为该区域的小姐姐数量

weights = []
for star in json_array:
    weight = star['weight']
    weights.append(weight)

weight_list = []
count_list = []

for weight in weights:
    if weight not in weight_list:
            count = weights.count(weight)
            weight_list.append(weight)
            count_list.append(count)

plt.figure(figsize=(20,15))

plt.bar(range(len(count_list)), count_list,color='r',tick_label=weight_list,facecolor='#9999ff',edgecolor='white')

# # 设置显示中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体

plt.title('''《青春有你2》参赛选手体重分布情况''',fontsize = 24)

参赛选手体重分布柱形图:
在这里插入图片描述

绘制体重分布饼图

  • 想要绘制指定体重范围内的饼图,首先需要统计出 [ ‘<45’, ‘45-50’, ‘50-55’, '>55] 各个范围内的选手个数。这里利用 Series 的掩码提取进行范围数据的选取,然后对指定范围的数据个数进行累计求和,得出指定体重范围内的选手数量(至于还有其他更方便快捷的数据提取方法,希望大家可以继续讨论交流下)。详见下面代码:
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

df00 = pd.read_json('data/data31557/20200422.json')

grouped=df00['name'].groupby(df00['weight'])
s = grouped.count()

# 统计指定范围的数据
a = s[s.index < '45'].sum()
b = s[(s.index >'45') & (s.index < '50')].sum()
c = s[(s.index >'50') & (s.index < '55')].sum()
d = s[(s.index >'55')].sum()
data = [a, b, c, d]

# 准备标签
labels = ['<45kg','45~50kg','50~55kg','>55kg']
# 颜色
colors = ['purple', 'red', 'blue', 'yellow']
# 分离
explode = [0, 0.05, 0.1, 0.2]

#绘制饼图
plt.pie(
    x=data,#绘制数据
    labels=labels,#添加编程语言标签
    shadow=True, # 设置阴影效果
    explode=explode, # 设置分离程度
    colors=colors, #设置自定义填充色
    autopct='%.3f%%',#设置百分比的格式,保留3位小数
    counterclock= False,#是否为逆时针方向,False表示顺时针方向
    )

plt.title('''《青春有你2》参赛选手体重分布''',fontsize = 24)

plt.axis('equal')

参赛选手体重分布饼图:
在这里插入图片描述

总结

今天已经是参加百度7日打卡活动的第三天啦!在这里要赞扬的是老师们和助教们的耐心解答,还有在微信群上同学们的互相帮助。可以有这样的一个环境给到大家,同时免费体验飞桨平台的众多技术,真的是非常感谢!简简单单,就可以了解到技术前沿,有一个初体验。对以后的人工智能学习是一个启蒙过程,大家可以去免费体验啦!

其他的咱们群上继续唠叨哈!加油!各位!

飞桨平台官网:https://www.paddlepaddle.org.cn/

发布了6 篇原创文章 · 获赞 3 · 访问量 393

猜你喜欢

转载自blog.csdn.net/L_COMH/article/details/105735829