Python高考报考迁移图怎么实现
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容介绍了"Python高考报考迁移图怎么实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一
千家信息网最后更新 2025年02月01日Python高考报考迁移图怎么实现
本篇内容介绍了"Python高考报考迁移图怎么实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
第一步:整理数据
通过浏览器自带抓包工具得到数据接口:
https://voice.baidu.com/api/commonkvapi?aid=gaokao&data={"migration.list":{"descId":6}}&=
返回的为json格式数据
接下来我们需要用python模拟爬取数据,原数据如上图,最后要把数据整理成字典格式,字典的键为省份,字典的值为该省考生最想去的前十个省份,格式如下:
{'青海': ['青海', '北京', '陕西', '江苏', '四川', '湖北', '上海', '甘肃', '山东', '重庆']}
实现这一过程的python代码如下:
import requestsimport jsonurl='https://voice.baidu.com/api/commonkvapi?aid=gaokao&data={"migration.list":{"descId":6}}&='header = { 'User-Agent': 'Mozilla/5.0(Windows NT 6.1; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0'}response = requests.get(url, headers=header)results=json.loads(response.text)['data']['migration.list']dict={}for i in results: top_10=[] province=i['province'] for m in i['list'][2]['list'][:10]: top_10.append(m['name']) dict[province]=top_10print(dict)
第二步:用pyecharts画出迁徙图
本次用的是0.5.11版本的pyecharts
画迁徙图的公式为:
from pyecharts import GeoLines, Stylestyle = Style()geo_style = style.add()citylines = GeoLines("2020年全国高考报考迁徙图", **style.init_style)citylines.add("迁徙图",[('北京','海南'),('北京','黑龙江'),('北京','西藏')],**geo_style)citylines.render()
把上面这段代码记住,以后需要画迁徙图直接往里面套就行了,下面给大家详细介绍一下参数作用:
1.style是图表初始化配置,例如图像大小、背景颜色、标题位置等;
2.style的add参数介绍:
is stack:是否堆积is convert:x,y轴是否交换is_legend_show:是否显示图例legend_orient:图列方向,有'horizontal'(默认水平显示),'vertical'(垂直)可选legend_pos:图例位置,有'left', 'center'(默认), 'right'可选legend_text_size/color:图例名称字体大小/颜色is_x/yaxis_show:是否显示x/y轴x/yaxis_interval:x/y轴标签的显示间隔x/yaxis_min/max:x/y轴刻度最小值/最大值x/yaxis_label_textsize/textcolor:x/y轴标签字体大小/颜色xaxis_rotate:x轴标签旋转角度is_splitline_show:是否显示网格线is_label_show:是否显示标签label_pos:标签的位置,有'top'(默认), 'left', 'right', 'bottom','inside','outside'可选label_text_color/size:标签字体颜色/大小is_random:是否随机排列颜色列表label_color:自定义标签颜色mark_point/line:标记点/线,默认有'min', 'max', 'average'可选。可自定义标记点线,具体格式如:[{'coord': [x, y], 'name': '目标标记点'}],记住格式是一个列表mark_point/line_symbol:标记点/线图形,默认为'pin'(点),有'circle'(圆形), 'rect'(正方形), 'roundRect'(圆角正方形), 'triangle'(三角形), 'diamond'(菱形), 'pin'(点), 'arrow'(箭头)可选mark_point/line_symbolsize:标记点/线图形大小mark_point/line_textcolor:标记点/线字体颜色
3.citylines表示定义1个迁徙图对象,可以添加标题以及初始化图标样式;
4.citylines.add可以添加标签、路线图以及图形样式
公式代码生成图形如下:
很基础的图形,没有任何样式。
套上述公式完成本次迁徙图,代码如下:
from pyecharts import GeoLines, Stylestyle = Style( title_color="#fff", title_pos="center", width=1200, height=900, background_color="#08192D")geo_style = style.add( legend_orient="vertical", legend_pos="left", legend_top = "center", legend_text_color="#fff", is_label_show=True, line_curve=0.2, line_opacity=0.6, geo_effect_symbol="plane", geo_effect_symbolsize=8, label_pos="right", label_formatter="{b}", label_text_color="#eee", symbol_size = 0.2, label_text_size=8, label_color=['#24936E','#6A4C9C','#0089A7','#BEC23F','#D0104C'])citylines = GeoLines("2020年全国高考报考迁徙图", **style.init_style)for city in list(dict.keys()): line_=[] for i in dict[city]: line_.append(tuple((city,i))) citylines.add("{0}".format(city),line_,**geo_style)citylines.render()
看起来有点乱,不过可以通过点击左边标签选择显示单个省份,以河南为例:
通过分析,发现各地的考生想留在本省的居多,最后,我还想对这些迁徙图的目的地省市的出现次数进行排名,代码如下:
re_list=[]for city in list(dict.keys()): re_list+=dict[city]re_dict={}for i in list(set(re_list)): re_dict[i]=re_list.count(i)attr=sorted(re_dict.items(),key=lambda k:k[1],reverse=True)chart = Bar("最受喜爱省份排名", **style.init_style)chart.add("", [i[0] for i in attr], [i[1] for i in attr], is_stack=True,xaxis_rotate=45)chart.render('最受喜爱省份排名.html')
"Python高考报考迁移图怎么实现"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
标签
颜色
数据
标记
代码
图形
大小
格式
省份
高考
字体
北京
位置
公式
图例
字典
样式
接下来
全国
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
庆余年服务器怎么设置
航空运输业网络安全洞察报告
我的世界可以赚货币的服务器
关系数据库中的约束
保障冬奥会网络安全工作总结
网易手机版mc服务器钻石指令教学
软件开发成本估算应该
广东数据链软件开发优化价格
统一战线网络安全培训
js绑定数据库字段
系统软件包括数据库系统吗
服务器运行维护和资源管理
王者荣耀如何暂时关闭服务器
fbi网络安全警告
软件开发类型的工作职位
绩效考核网络安全内容
数据库账户余额数值型
用什么软件开发语言
修改数据库名称代码
热点的网络安全问题
java软件开发复试是什么
浙江前端软件开发公司
软件开发新人培训计划
阿里云服务器联系电话
网络安全华人
用友现在是云存储还是要服务器
常见的网络安全违规行为
基于vc聊天软件开发
雄猫金服软件开发有限公司
服务器系统监控管理软件