python+matplotlib绘制饼图,可视化性别比例&地区比例实例(函数封装+条件分支思想应用)

您所在的位置:网站首页 男女占比表格怎么做图片 python+matplotlib绘制饼图,可视化性别比例&地区比例实例(函数封装+条件分支思想应用)

python+matplotlib绘制饼图,可视化性别比例&地区比例实例(函数封装+条件分支思想应用)

2024-03-09 12:53| 来源: 网络整理| 查看: 265

又是一次tensorflow课作业来啦,老师要求的是用wxpy+matplotlib进行微信好友性别比例+好友所在地区的统计,但是由于wxpy登不上网页版微信,所以最后搞成瞎编好友数据并且用matplotlib给它们画图。封装了一个饼图绘制函数draw(),感觉以后还可以用到于是就写篇博客。 p.s.全部代码放在最后,欢迎抱走~

一、目标 使用wxpy从个人微信网页版获取好友信息(不能实现),进行统计分析并使用matplotlib绘制可视化饼图。绘制过程中存在重复的部分要求使用函数封装,实现代码的复用。 图一:微信好友性别统计,显示男女各占比例。 图二:微信好友地区统计,选择所在人数最多的10个地区,按顺序显示地区名+比例。

二、思路 1.数据来源:由于无法登录网页版微信,自定义好友数据(列表类型) 2.封装为函数:将使用matplotlib模块绘图的过程抽象为draw()函数,实现代码复用。 3.设置条件分支并绘图:按照性别统计与地区统计的特征,设计参数处理过程。使用命令行交互,用户可选择两种图表中的一种,并进行绘制。

三、步骤与原理 1 导入模块与数据 matplotlib库用于图表绘制,导入matplotlib.pyplot模块。 由于无法登陆网页版微信,自定义数据以进行后续的统计和可视化分析。将数据存为字典的形式,注意无序设置以检测后续统计功能中的排序过程。

import matplotlib.pyplot as plt #from wxpy import * #bot = Bot(cache_path = True) #friends_stat = bot.friends().stats() #由于无法登陆微信网页版而自定义好友信息数据 friends_stat={ 'sex':{ 1:34,2:55}, # 性别 'province':{ '北京':30,'上海':19,'山东':108,'黑龙江':4, '浙江':2,'广东':6,'广西':3,'江苏':7, '内蒙古':1,'西藏':1,'吉林':2,'新疆':1, '四川':11,'湖北':2,'湖南':2,'辽宁':5} # 省份 }

2 定义绘图函数draw() 定义函数的依据:在使用matplotlib绘制饼图时,绘制过程可复用,各饼图之间的区别在于1.饼图标签集labels 2.各标签对应的数值大小sizes。由labels可计算出饼图的数据项数(分块数),由sizes可计算出饼图分割的比例。 于是将传入参数设置为[labels]和[sizes],其他参数或为固定,或可由传入参数计算得到。

经过计算得到的参数: (1)items_count: 饼图项数,为labels列表的长度,使用len()计算。 (2)colors:预存10种颜色到color_list,根据items_count确定颜色数量匹配的colors列表,使用切片操作。 (2)explode:使用合适的一次项系数0.3,保证间隙根据项数设置递增。 关于ios系统设置中文字体的参数,请参考:https://www.cnblogs.com/wanghui-garcia/p/11195925.html

#定义绘图函数 def draw(labels,sizes): plt.figure(figsize=(6,9)) #调节图形大小 colors_list = ['yellowgreen','lightgrey','navy','blue','yellow','red','green','pink','indigo','lightskyblue']


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3