Python|绘图库Matplotlib | Python技能树征题

【Python|绘图库Matplotlib | Python技能树征题】题目:将下面 position.json里的数据,用Matplotlib模块进行数据处理,其中职位名称要用扇形图来显示,工作地点、工资则用柱形图显示,并将最终的结果图形保存为一张图片。
position.json :

[ [ { "职位名称": "Python程序开发师", "公司名": "爱奇艺(www.iqiyi.com)", "工作地点": "成都-高新区", "薪资": "1.3-1.6万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "武汉佰钧成技术有限责任公司", "工作地点": "深圳-龙华区", "薪资": "2.5-3万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "广州新华时代数据系统有限公司", "工作地点": "上海", "薪资": "0.8-1.6万/月", "发布时间": "09-09" }, { "职位名称": "Python开发/Odoo工程师", "公司名": "造源信息科技(上海)有限公司", "工作地点": "上海-杨浦区", "薪资": "1.1-2万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "中讯志远(武汉)科技有限公司", "工作地点": "杭州-滨江区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "深圳市博悦科创科技有限公司", "工作地点": "深圳-福田区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python研发工程师", "公司名": "杭州岱名科技有限公司", "工作地点": "杭州-萧山区", "薪资": "1.5-3万/月", "发布时间": "09-09" }, { "职位名称": "Python高级开发工程师", "公司名": "武汉小安科技有限公司", "工作地点": "武汉-洪山区", "薪资": "1.2-2.4万/月", "发布时间": "09-09" }, { "职位名称": "Python工程师", "公司名": "江苏博思堂房地产综合服务股份有限公司", "工作地点": "苏州-吴中区", "薪资": "0.6-1万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "北京正芯合创微电子技术有限公司", "工作地点": "北京-朝阳区", "薪资": "1.5-2万/月", "发布时间": "09-09" }, { "职位名称": "Python高级开发工程师", "公司名": "北京海天起点技术服务股份有限公司", "工作地点": "长沙-天心区", "薪资": "1.2-2.4万/月", "发布时间": "09-09" }, { "职位名称": "Python高级开发工程师", "公司名": "小i机器人", "工作地点": "上海", "薪资": "1.5-3万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "浪潮通软公司", "工作地点": "深圳-南山区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "上海悟景信息科技有限公司", "工作地点": "上海-浦东新区", "薪资": "2-2.7万/月", "发布时间": "09-09" }, { "职位名称": "python助理工程师", "公司名": "深圳思凯测试技术有限公司", "工作地点": "深圳-光明区", "薪资": "0.7-1万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "博彦科技广州有限公司", "工作地点": "上海-嘉定区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "python开发助理", "公司名": "深圳市秉高科技有限公司", "工作地点": "深圳-宝安区", "薪资": "0.8-1万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "奔讯电子科技(北京)有限公司", "工作地点": "北京-朝阳区", "薪资": "1.2-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "远江盛邦(北京)网络安全科技股份有限公司", "工作地点": "陕西省", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python(odoo)开发工程师", "公司名": "成都艾森威科技有限公司", "工作地点": "成都-高新区", "薪资": "0.6-1.2万/月", "发布时间": "09-09" }, { "职位名称": "Python中级开发工程师", "公司名": "福建法意科技有限公司", "工作地点": "福州-闽侯县", "薪资": "0.8-1.5万/月", "发布时间": "09-09" }, { "职位名称": "python developer", "公司名": "欧睿恒(大连)信息技术有限公司", "工作地点": "大连", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "上海清鹤科技股份有限公司", "工作地点": "上海-浦东新区", "薪资": "1.2-1.8万/月", "发布时间": "09-09" }, { "职位名称": "Python后端工程师", "公司名": "苏州盈数智能科技有限公司", "工作地点": "苏州-相城区", "薪资": "0.8-1.5万/月", "发布时间": "09-09" }, { "职位名称": "python工程师(J10623)", "公司名": "无锡先导智能装备股份有限公司", "工作地点": "无锡-无锡新区", "薪资": "1.1-2.2万/月", "发布时间": "09-09" }, { "职位名称": "python爬虫工程师", "公司名": "丹东同盛科技有限公司", "工作地点": "南昌-东湖区", "薪资": "0.5-1万/月", "发布时间": "09-09" }, { "职位名称": "Python 高级软件工程师", "公司名": "上海国微思尔芯技术股份有限公司", "工作地点": "上海-浦东新区", "薪资": "20-40万/年", "发布时间": "09-09" }, { "职位名称": "高级Python开发工程师(上海)", "公司名": "上海华讯网络系统有限公司", "工作地点": "上海-浦东新区", "薪资": "1.5-2.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "千巡科技(深圳)有限公司", "工作地点": "深圳-宝安区", "薪资": "1.5-3万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师(应届生)", "公司名": "上海德程数据技术有限公司", "工作地点": "上海-静安区", "薪资": "6-8千/月", "发布时间": "09-09" }, { "职位名称": "Python高级开发工程师", "公司名": "武汉海星通技术股份有限公司", "工作地点": "武汉-江汉区", "薪资": "0.9-1.3万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "湖南大唐先一科技有限公司", "工作地点": "长沙", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "上海弘矽半导体有限公司", "工作地点": "上海-浦东新区", "薪资": "1.5-2万/月", "发布时间": "09-09" }, { "职位名称": "python开发助理", "公司名": "成都匠翎信息技术有限公司", "工作地点": "成都-高新区", "薪资": "4-6千/月", "发布时间": "09-09" }, { "职位名称": "Python爬虫工程师", "公司名": "广州时时美电子商务有限公司", "工作地点": "广州-荔湾区", "薪资": "0.8-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python后端开发工程师", "公司名": "珠海轼域网络科技有限公司", "工作地点": "珠海-香洲区", "薪资": "1.8-2.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "时代云英(深圳)科技有限公司", "工作地点": "深圳-南山区", "薪资": "1.5-3万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师/软件工程师", "公司名": "杭州研一智控科技有限公司", "工作地点": "杭州-钱塘区", "薪资": "1.2-2万/月", "发布时间": "09-09" }, { "职位名称": "Python后端开发工程师", "公司名": "固安捷(中国)工业品销售有限责任公司", "工作地点": "上海-徐汇区", "薪资": "1.5-2.5万/月", "发布时间": "09-09" }, { "职位名称": "Python工程师", "公司名": "上海西井信息科技有限公司", "工作地点": "上海-长宁区", "薪资": "1.5-3万/月", "发布时间": "09-09" }, { "职位名称": "python爬虫高级工程师", "公司名": "深圳市华运国际物流有限公司", "工作地点": "深圳-罗湖区", "薪资": "1.8-2.5万/月", "发布时间": "09-09" }, { "职位名称": "Python web开发工程师", "公司名": "上海南洋万邦软件技术有限公司", "工作地点": "上海-徐汇区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python工程师", "公司名": "浪潮软件集团", "工作地点": "济南-高新区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "武汉中畜智联科技有限公司", "工作地点": "武汉-蔡甸区", "薪资": "0.7-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python工程师", "公司名": "武汉国贸通大数据有限公司", "工作地点": "武汉-洪山区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python高级开发工程师[J832045]", "公司名": "上海美市科技有限公司", "工作地点": "武汉-洪山区", "薪资": "1.2-2万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "信必优(深圳)信息技术有限公司", "工作地点": "深圳-南山区", "薪资": "1.3-1.6万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "上海火线资产管理有限公司", "工作地点": "上海-浦东新区", "薪资": "1.2-1.8万/月", "发布时间": "09-09" }, { "职位名称": "C++ / Python开发工程师", "公司名": "江苏科学梦创展科技有限公司", "工作地点": "淮安", "薪资": "0.7-1.2万/月", "发布时间": "09-09" }, { "职位名称": "高级python开发", "公司名": "宁波创母体网络科技有限公司", "工作地点": "宁波", "薪资": "0.9-1.6万/月", "发布时间": "09-09" } ], [ { "职位名称": "Python文档开发-南京-双休13薪+", "公司名": "江苏润和软件股份有限公司", "工作地点": "南京-雨花台区", "薪资": "1.2-2.4万/月", "发布时间": "09-09" }, { "职位名称": "Python助理工程师/双休", "公司名": "深圳市富成喜科技有限公司", "工作地点": "深圳-宝安区", "薪资": "0.8-1万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "上海现代通用识别技术有限公司", "工作地点": "上海", "薪资": "1.1-1.3万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "深圳华会科技有限公司", "工作地点": "深圳-龙华区", "薪资": "0.8-2万/月", "发布时间": "09-09" }, { "职位名称": "初级Python后端开发工程师", "公司名": "上海楷领科技有限公司", "工作地点": "西安-雁塔区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发", "公司名": "广州市卓为信息技术有限公司", "工作地点": "广州-天河区", "薪资": "1.1-1.7万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "致同会计师事务所深圳分所", "工作地点": "深圳", "薪资": "1-2万/月", "发布时间": "09-09" }, { "职位名称": "Python爬虫工程师", "公司名": "深圳市洛菲纳电子商务有限公司", "工作地点": "深圳-宝安区", "薪资": "15-30万/年", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "北京汉克时代科技有限公司", "工作地点": "上海-浦东新区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "python开发", "公司名": "深圳市网新新思软件有限公司", "工作地点": "上海-徐汇区", "薪资": "1-1.8万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "北京华美汉盛信息技术有限公司", "工作地点": "佛山-高明区", "薪资": "0.6-1万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "深圳麦亚信科技股份有限公司上海分公司", "工作地点": "上海-徐汇区", "薪资": "1.3-2万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "米德高斯大数据科技(上海)股份有限公司", "工作地点": "上海-浦东新区", "薪资": "1.2-1.6万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "上海华铭智能终端设备股份有限公司", "工作地点": "上海", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "北京宜通华瑞科技有限公司", "工作地点": "南昌-红谷滩新区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "易宝软件(东莞)有限公司", "工作地点": "深圳", "薪资": "2-2.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "东莞市找大状互联网技术有限公司", "工作地点": "东莞", "薪资": "1.5-2.5万/月", "发布时间": "09-09" }, { "职位名称": "python开发工程师", "公司名": "杭州泛利科技有限公司", "工作地点": "杭州", "薪资": "6-8千/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "科芃智能科技(苏州)有限公司", "工作地点": "苏州-相城区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "python开发工程师", "公司名": "浙江小果文化发展有限公司", "工作地点": "嘉兴", "薪资": "6-8千/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "上海嘉强自动化技术有限公司", "工作地点": "上海-松江区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "南京数坤信息科技有限公司", "工作地点": "南京-鼓楼区", "薪资": "0.6-1万/月", "发布时间": "09-09" }, { "职位名称": "python开发工程师", "公司名": "上海擎云物联网股份有限公司", "工作地点": "上海-闵行区", "薪资": "6-8千/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "兆恒电脑科技(上海)有限公司广州分公司", "工作地点": "上海-徐汇区", "薪资": "0.9-1.2万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "“前程无忧”51job.com(上海)", "工作地点": "上海", "薪资": "0.8-1.2万/月", "发布时间": "09-09" }, { "职位名称": "HitS事业部-Python软件开发工程师(J17585)", "公司名": "上海药明康德新药开发有限公司", "工作地点": "上海", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python工程师", "公司名": "北京万古恒信科技有限公司武汉分公司", "工作地点": "武汉-洪山区", "薪资": "0.9-1.6万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "成都云图睿视科技有限公司", "工作地点": "成都-郫都区", "薪资": "4-6千/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "广州启宏文化发展有限公司", "工作地点": "广州-天河区", "薪资": "5-7千/月", "发布时间": "09-09" }, { "职位名称": "软件工程师Python", "公司名": "牧今科技(广州)有限责任公司", "工作地点": "广州-海珠区", "薪资": "2-3万/月", "发布时间": "09-09" }, { "职位名称": "python爬虫工程师", "公司名": "深圳华秋电子有限公司", "工作地点": "深圳-福田区", "薪资": "1.5-2.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "北京金道天成信息系统服务有限公司", "工作地点": "西安-雁塔区", "薪资": "1-1.8万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "深圳市微智体技术有限公司", "工作地点": "深圳-龙华区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师-YE", "公司名": "深圳达普信科技有限公司", "工作地点": "深圳-龙华区", "薪资": "1.8-2.5万/月", "发布时间": "09-09" }, { "职位名称": "Python后端开发工程师", "公司名": "深圳市艾珆文化有限公司", "工作地点": "深圳-福田区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "python后端开发工程师", "公司名": "上海之江生物科技股份有限公司", "工作地点": "上海", "薪资": "1.5-2万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "广东盛迪嘉集团有限公司", "工作地点": "深圳-南山区", "薪资": "1.5-2.5万/月", "发布时间": "09-09" }, { "职位名称": "Python软件开发工程师", "公司名": "苏州威思测电子科技有限公司", "工作地点": "昆山", "薪资": "1-2万/月", "发布时间": "09-09" }, { "职位名称": "Python开发实习生", "公司名": "西安无限天际网络科技有限公司", "工作地点": "西安-碑林区", "薪资": "4.5-6千/月", "发布时间": "09-09" }, { "职位名称": "Python开发实习生", "公司名": "西安未来云信息科技有限公司", "工作地点": "西安-碑林区", "薪资": "4.5-6千/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "郴州芝麻开门物流有限公司", "工作地点": "郴州", "薪资": "0.5-1万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "深圳市东荣物流有限公司", "工作地点": "深圳-福田区", "薪资": "1.5-2万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "武汉天际航信息科技股份有限公司", "工作地点": "武汉", "薪资": "0.7-1.2万/月", "发布时间": "09-09" }, { "职位名称": "Python/Odoo开发工程师", "公司名": "Dauphin Pastoureau SAS", "工作地点": "上海-静安区", "薪资": "0.9-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师+天府三街", "公司名": "北京中富金石咨询有限公司四川分公司", "工作地点": "成都-高新区", "薪资": "1-1.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "上海云逐信息技术有限公司", "工作地点": "上海-浦东新区", "薪资": "1.5-2万/月", "发布时间": "09-09" }, { "职位名称": "Python架构师01 (MJ000029)", "公司名": "上海联恩商钥互联网科技股份有限公司", "工作地点": "上海-徐汇区", "薪资": "2-3.5万/月", "发布时间": "09-09" }, { "职位名称": "高级 Python 程序员", "公司名": "广东堡塔安全技术有限公司", "工作地点": "东莞-南城区", "薪资": "2.5-3.5万/月", "发布时间": "09-09" }, { "职位名称": "Python开发工程师", "公司名": "内蒙古西贝餐饮集团有限公司", "工作地点": "北京-石景山区", "薪资": "20-30万/年", "发布时间": "09-09" }, { "职位名称": "高级Python / 爬虫开发工程师", "公司名": "上海本原网络科技有限公司", "工作地点": "上海-闵行区", "薪资": "2-2.5万/月", "发布时间": "09-09" } ] ]

答案:
# -*- coding:utf-8 -*- from matplotlib import pyplot as plt import json import redef get_job_data(): # 读取json文件拿到职位列表数据 job_list = [] temp_job_list = json.load(open("./position.json", "r", encoding='utf-8')) # 定义几个列表存放数据 # 薪资 money_list = [] # 工作城市 place_list = [] # 职位名称 position_list = [] # 将所有字典存入列表 # [[{},{}],[{},{}]] # [{},{},{},{}] for temp_job in temp_job_list: for temp_element in temp_job: job_list.append(temp_element) for job in job_list: temp_salary = job.get("薪资") temp_money = re.findall(r"-(0\.\d+|\d+\.\d+|\d+)", temp_salary) if len(temp_money) > 0: money = float(temp_money[0]) money_list.append(money) else: money_list.append(0) temp_place = job.get("工作地点") # 工作城市 palce = re.findall(r"(.+)-", temp_place) if len(palce) > 0: place_list.append(palce[0]) else: place_list.append(job.get("工作地点")) position = job.get("职位名称") position_list.append(position) return position_list, place_list, money_listdef paint_pie(): position_data, place_data, money_data = get_job_data() # y_datas是楼盘的数据,渲染的是每一个分类有多少个数据 count_1 = 0 count_2 = 0 count_3 = 0 count_4 = 0for money in money_data: if money > 2: count_1 = count_1 + 1 elif money > 1.5: count_2 = count_2 + 1 elif money > 1: count_3 = count_3 + 1 else: count_4 = count_4 + 1 item_position = {} # [1,1,2,3,4] for position in position_data: # 计算列表中该元素的数量 item_position[position] = position_data.count(position) # print(item_position) # 中文乱码 plt.rcParams["font.sans-serif"] = ["Microsoft YaHei"]position_y_datas = [] for element in item_position.keys(): temp_y_datas = item_position.get(element) position_y_datas.append(temp_y_datas)position_x_datas = item_position.keys() x_position = [i for i in range(len(position_x_datas))] plt.subplot(2, 2, 1) plt.title("职位名称") plt.xlabel("职位") plt.ylabel("职位数目") plt.xticks(x_position, position_x_datas, rotation=90) plt.bar(x_position, position_y_datas)item_place = {} for place in place_data: item_place[place] = place_data.count(place) # print(item_place)place_y_datas = [] for element in item_place.keys(): temp_y_datas = item_place.get(element) place_y_datas.append(temp_y_datas)place_x_datas = item_place.keys() x_place = [i for i in range(len(place_x_datas))] plt.subplot(2, 2, 2) plt.title("工作地点") plt.xlabel("地区") plt.ylabel("岗位数目") plt.xticks(x_place, place_x_datas, rotation=90) plt.bar(x_place, place_y_datas)plt.subplot(2, 2, 4) plt.title("工资") plt.pie([count_1, count_2, count_3, count_4], explode=[0, 0, 0, 0.1], labels=["工资超过2万", "工资在1.5万到2万", "工资在1万到1.5万", "工资小于1万"], colors=['red', 'green', 'pink', 'blue']) # 放大窗口 plt.gcf().set_size_inches(25, 20) plt.savefig("./1.png") plt.show()if __name__ == '__main__': get_job_data() paint_pie()

运行结果:
Python|绘图库Matplotlib | Python技能树征题
文章图片


    推荐阅读