百度飞桨学院小白逆袭大神第三天题目解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 百度飞桨学院小白逆袭大神第三天题目解析

题目



!!!作业说明!!!

请在下方提示位置,补充代码,对《青春有你2》对选手体重分布进行可视化,绘制饼状图,如下图所示:

不要求跟下图样式一模一样


20200424173120159.png


任务描述:

基于第二天实践使用Python来爬去百度百科中《青春有你2》所有参赛选手的信息,进行数据可视化分析。


20200424173134895.png


题目解析



题目案例方法一:


#导入第三方库
import matplotlib.pyplot as plt
import numpy as np 
import json
import matplotlib.font_manager as font_manager
#显示matplotlib生成的图形
%matplotlib inline#线下测试会报错
#打开文档并用loads()处理保存数据
with open('data/data31557/20200422.json', 'r', encoding='UTF-8') as file:
         json_array = json.loads(file.read())
#绘制小姐姐区域分布柱状图,x轴为地区,y轴为该区域的小姐姐数量
zones = []
#循环列表,把'zone'的值存入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=(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)#x轴
plt.yticks(fontsize=20)#y轴
plt.legend()#图例
plt.title('''《青春有你2》参赛选手''',fontsize = 24)#标题
plt.savefig('/home/aistudio/work/result/bar_result.jpg')#保存地址
#地址线下自行修改
plt.show()#进行查看


输出结果:


['中国湖北', '中国四川', '中国山东', '中国浙江', '中国山东', '中国台湾', '中国陕西', '中国广东', '中国黑龙江', '中国上海', '中国四川', '中国山东', '中国安徽', '中国安徽', '中国安徽', '中国北京', '中国贵州', '中国吉林', '中国四川', '中国四川', '中国江苏', '中国山东', '中国山东', '中国山东', '中国山东', '中国江苏', '中国四川', '中国山东', '中国山东', '中国广东', '中国浙江', '中国河南', '中国安徽', '中国河南', '中国北京', '中国北京', '马来西亚', '中国湖北', '中国四川', '中国天津', '中国黑龙江', '中国四川', '中国陕西', '中国辽宁', '中国湖南', '中国上海', '中国贵州', '中国山东', '中国湖北', '中国黑龙江', '中国黑龙江', '中国上海', '中国浙江', '中国湖南', '中国台湾', '中国台湾', '中国台湾', '中国台湾', '中国山东', '中国北京', '中国北京', '中国浙江', '中国河南', '中国河南', '中国福建', '中国河南', '中国北京', '中国山东', '中国四川', '中国安徽', '中国河南', '中国四川', '中国湖北', '中国四川', '中国陕西', '中国湖南', '中国四川', '中国台湾', '中国湖北', '中国广西', '中国江西', '中国湖南', '中国湖北', '中国北京', '中国陕西', '中国上海', '中国四川', '中国山东', '中国辽宁', '中国辽宁', '中国台湾', '中国浙江', '中国北京', '中国黑龙江', '中国北京', '中国安徽', '中国河北', '马来西亚', '中国四川', '中国湖南', '中国台湾', '中国广东', '中国上海', '中国四川', '日本', '中国辽宁', '中国黑龙江', '中国浙江', '中国台湾']
['中国湖北', '中国四川', '中国山东', '中国浙江', '中国台湾', '中国陕西', '中国广东', '中国黑龙江', '中国上海', '中国安徽', '中国北京', '中国贵州', '中国吉林', '中国江苏', '中国河南', '马来西亚', '中国天津', '中国辽宁', '中国湖南', '中国福建', '中国广西', '中国江西', '中国河北', '日本']
[6, 14, 13, 6, 9, 4, 3, 6, 5, 6, 9, 2, 1, 2, 6, 2, 1, 4, 5, 1, 1, 1, 1, 1]



20200424143447143.png


这里面的图大小溢出(线下运行的问题)


方法案例解析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['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_result02.jpg')
plt.show()


2020042417370111.png


饼状图解析



主要是思路


原图


20200424174141971.png


#导入第三方库
import matplotlib.pyplot as plt
import numpy as np 
import json
import matplotlib.font_manager as font_manager
#显示matplotlib生成的图形
%matplotlib inline#线下测试会报错
#打开文档并用loads()处理保存数据
with open('data/data31557/20200422.json', 'r', encoding='UTF-8') as file:
         json_array = json.loads(file.read())
weight = []
#循环列表,把'zone'的值存入zones
for star in json_array:
    weight = star['weight']
    weight.append(weight)
print(len(weight))
print(weight)


本着抄代码的原则,能不写绝对不写,不用改无所谓

这里生成的结果是小姐姐们的体重和数量

那么我们就根据需要分成4块,计算出他的人的数量

然后求出相应比例就好了

百度圆图的制作

这个是我的部分,你们自己看


name_list = ['<45kg', '45kg~50kg', '50kg~55kg', '>55kg']
explode=[0,0.2,0,0]
color=['RoyalBlue','DarkOrange','ForestGreen','Brown']
plt.axes(aspect='equal')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.pie(x=ratio_list,labels=name_list,autopct='%.1f%%',
explode =explode, colors=color, shadow=True, labeldistance=1.1, 
startangle = 90,pctdistance = 0.6)


其他的,自己看一下,这只是我的想法

我最开始想多来一百多行才出结果,后来经过点拨减了一半

如果有好的思路,欢迎留言!!!

目录
相关文章
|
1月前
|
BI 网络安全
软件设计师软考题目解析08 --每日五题
本文解析了五道软件设计师软考题目,包括信号量S的PV操作、最先获得输入信息的程序、文法G生成的字符串特性、包过滤防火墙的过滤依据以及中断的概念。
23 1
软件设计师软考题目解析08 --每日五题
|
1月前
|
机器学习/深度学习 监控 数据挖掘
基于Django和百度飞桨模型的情感识别Web系统
基于Django和百度飞桨模型的情感识别Web系统
37 5
|
1月前
|
物联网 vr&ar
软件设计师软考题目解析09 --每日五题
本文解析了五道软件设计师软考题目,包括CPU执行算术或逻辑运算时使用的寄存器、多级中断嵌套中保护断点和现场最有效的方式、64位与32位微处理器的不同、FTP服务器的默认端口以及“三网合一”所指的三网。
40 4
|
1月前
|
算法 测试技术
软件设计师软考题目解析24 --每日五题
这篇文章提供了软件设计师软考的每日五题解析,包括测试用例设计、软件维护类型、路径覆盖测试、软件维护工具和系统改进等知识点。
27 0
软件设计师软考题目解析24 --每日五题
|
1月前
|
项目管理
软件设计师软考题目解析20之英语题
软件设计师软考中英语题目的解析和答题技巧,帮助考生攻克英语部分的题目。
18 0
软件设计师软考题目解析20之英语题
|
1月前
|
存储 数据安全/隐私保护
软件设计师软考题目解析下午题01
这篇文章提供了对软件设计师软考下午题目的解析,涉及农业基地信息化管理服务平台的人员管理、基地管理、种植管理、投入品管理和信息服务功能,并要求考生根据上下文描述和数据流图来回答问题。
26 0
软件设计师软考题目解析下午题01
|
1月前
|
安全 算法 网络安全
软件设计师软考题目解析15 --每日五题
这篇文章是关于软件设计师软考的题目解析,包括防火墙功能、网络连接分析、DMZ区服务器类型、拒绝服务攻击特点以及公开密钥加密算法的选择题,旨在帮助考生准备考试。
27 0
软件设计师软考题目解析15 --每日五题
|
1月前
|
存储 芯片
软件设计师软考题目解析10 --每日五题
五道软考题目的解析,并提供了详细的答案和解题思路。
55 0
软件设计师软考题目解析10 --每日五题
|
1月前
|
前端开发 数据处理
软件设计师软考题目解析23 --每日五题
每日五题解析,涉及结构化开发方法的特点、数据流图的基本加工、MVC体系结构的优点以及模块间耦合类型的判断等知识点。
14 0
|
1月前
|
算法 数据建模 数据库
软件设计师软考题目解析22 --每日五题
每日五题解析,涉及结构化开发方法中的接口设计依据、数据结构和算法设计、数据流图的使用场景、外部实体的识别以及决策树在数据流图中表示复杂条件逻辑的应用。
16 0

推荐镜像

更多