局部整体(三)利用python绘制饼图

news2024/11/27 16:41:26

局部整体(三)利用python绘制饼图

饼图( Pie Plot)简介

1

饼图是一个将整体划分为几个扇形的圆形统计图表,用于描述数量、频率或百分比之间的相对关系。饼形图适合用来快速展示数据比例分布,但不利于展示较多项目。饼图也因过于关注不同部分彼此或相对于整体的大小关系,导致与其他饼形图作整体比较时不能显示出任何变化而饱受诟病。

快速绘制

  1. 基于matplotlib

    import matplotlib.pyplot as plt
    
    # 自定义数据
    size_of_groups=[12,11,3,30]
    
    # 利用pie函数快速创建
    plt.pie(size_of_groups)
    plt.show()
    

    2

定制多样化的饼图

自定义饼图一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。参数信息可以通过官网进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。

关于pie的更多用法可参考matplotlib.pyplot.pie

  1. 自定义饼图

    import matplotlib as mpl
    import matplotlib.pyplot as plt
    from matplotlib_venn import venn3, venn3_circles
    
    plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
    
    # 自定义数据
    names='groupA', 'groupB', 'groupC', 'groupD',
    values=[12,11,3,30]
    
    # 初始化布局
    fig = plt.figure(figsize=(12,8))
    
    # 添加标签
    plt.subplot(1, 4, 1) 
    plt.pie(values, labels=names, labeldistance=1.15)
    plt.title('添加标签')
    
    # 自定义扇形
    plt.subplot(1, 4, 2) 
    plt.pie(values, labels=names, labeldistance=1.15, wedgeprops = { 'linewidth' : 3, 'edgecolor' : 'white' })
    plt.title('自定义扇形')
    
    # 自定义颜色
    plt.subplot(1, 4, 3) 
    colors = ['#4F6272', '#B7C3F3', '#DD7596', '#8EB897']
    plt.pie(values, labels=names, labeldistance=1.15, 
                wedgeprops = { 'linewidth' : 1, 'edgecolor' : 'white' }, colors=colors)
    plt.title('自定义颜色')
    
    # 显示百分比
    plt.subplot(1, 4, 4) 
    plt.pie(values, labels=names, autopct='%1.1f%%')
    plt.title('显示百分比')
    
    plt.show()
    

    3

  2. 拓展-警惕饼图带来的阅读障碍

    观察比较三个图形中哪个分组的值最高,同时尝试找出各组之间的值的变化趋势

    4

    是不是很难看出来,下面将饼图转化为条形图再看看呢?

    5

    # 饼图比较
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
    
    # 自定义标签
    labels = ['a', 'b', 'c', 'd', 'e']
    
    # 初始化布局
    fig = plt.figure(figsize=(12,5))
    
    # 饼图1
    plt.subplot(1, 3, 1) 
    plt.pie([17,18,20,22,24], labels=labels)
    
    # 饼图2
    plt.subplot(1, 3, 2) 
    plt.pie([20,18,21,20,20], labels=labels)
    
    # 饼图3
    plt.subplot(1, 3, 3) 
    plt.pie([24,23,21,19,18], labels=labels)
    
    plt.show()
    
    # 条形图比较
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
    
    # 自定义标签
    labels = ['a', 'b', 'c', 'd', 'e']
    
    # 初始化布局
    fig = plt.figure(figsize=(12,3))
    
    # 条形图1
    plt.subplot(1, 3, 1) 
    sns.barplot(x=labels, y=[17,18,20,22,24], errorbar=None)
    
    # 条形图2
    plt.subplot(1, 3, 2) 
    sns.barplot(x=labels, y=[20,18,21,20,20], errorbar=None)
    
    # 条形图3
    plt.subplot(1, 3, 3) 
    sns.barplot(x=labels, y=[24,23,21,19,18], errorbar=None)
    
    
    plt.show()
    

    总结

    以上通过matplotlib的pie快速绘制饼图,并通过修改参数或者辅以其他绘图知识自定义各种各样的饼图来适应相关使用场景。也提醒了在多个饼图间进行比较的困难,更建议使用条形图。

    共勉~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2060593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为手机相册的照片丢失或误删怎么恢复?

手机已经成为了生活中极其重要的一部分,尤其是华为手机用户,一定深知其出色的拍照功能和丰富的相册管理功能。然而,常有意外出现,如误删除、格式化、备份覆盖等情况导致手机相册的照片丢失,那么华为手机相册的照片怎么…

企业级WEB应用服务器——TOMCAT

一、WEB技术 1.1、HTTP协议和B/S 结构 最早出现了CGI(Common Gateway Interface)通用网关接口,通过浏览器中输入URL直接映射到一个 服务器端的脚本程序执行,这个脚本可以查询数据库并返回结果给浏览器端。这种将用户请求使用程…

今年暑期渗透测试面试经验分享

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

arthas源码刨析:启动 (1)

文章目录 arthas-bootBootstrap Created with Raphal 2.3.0 开始 检查监听端口 jps 列表java应用 下载 lib 依赖 功能移交给 arthas-core 结束 arthas-boot 该module 的代码只有3个类: Bootstrap 启动类 Bootstrap ,开头的注解就是 alibaba 的 cli 中…

蛇优化算法(Snake Optimization, SO)优化RBF神经网络的扩散速度实现多数入多输出数据预测,可以更改数据集(MATLAB代码)

一、蛇优化算法优化RBF神经网络的扩散速度原理介绍 RBF神经网络的扩散速度通常与它的径向基函数的宽度参数(σ)有关,这个参数控制了函数的径向作用范围。在高斯核函数中,当σ值较大时,函数的扩散速度较快,…

Prometheus3: 监控CPU

1. 查看监控CPU所需的key [rootlocalhost node_exporter]# curl http://localhost:9100/metrics | grep -i node_cpu | head% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 0 0 0 …

达梦数据库的系统视图v$db_cache

达梦数据库的系统视图v$db_cache 在达梦数据库(DM Database)中,V$DB_CACHE 是一个系统视图,提供了数据库缓存的相关信息。数据库缓存是数据库系统用来加速数据访问的关键组件,通过缓存常用数据来减少对磁盘操作的依赖…

《机器学习》—— 使用过采样方法实现逻辑回归分类问题

文章目录 一、什么是过采样方法?二、使用过采样方法实现逻辑回归分类问题三、过采样的优缺点 本篇内容是 基于Python的scikit-learn库中sklearn.linear_model 类中的 LogisticRegression()逻辑回归方法实现的,其内容中只是在处理…

进程与线程(7)

IPC通信方式: 一、共享内存 system v : 共享内存 是一块,内核预留的空间 最高效的通信方式 (避免了用户空间 到 内核空间的数据拷贝) 二、IPC对象操作通用框架: key值 > 申请 》读写 》关闭 》卸载 1.ftok函数:…

【Dash】Dash中@callback() 回调函数的Output() 参数

一、Dash 中的 callback() 在Python中,callback是一个用于注册回调函数的装饰器 Dash 的回调机制允许开发者创建交互式的Web应用,通过回调函数可以实现前端界面与后端逻辑的交互。 二、callback() 的概念、定义和应用场景 概念 callback 是 Dash 框…

视觉表征学习中的世界模型:自监督方法的新篇章

人工智能咨询培训老师叶梓 转载标明出处 计算机视觉中,表征学习是一个核心问题。如何让机器像人类一样理解图像内容,是实现高级视觉任务的关键。传统的自监督学习方法往往依赖于数据的变换来预测其变化,例如遮蔽图像建模(Masked …

SpringBoot:将单体项目拆分成微服务项目

💥 该系列属于【SpringBoot基础】专栏,如您需查看其他SpringBoot相关文章,请您点击左边的连接 目录 一、项目准备 二、拆分商品服务和购物车服务 1. 商品服务 (1)创建模块 (2)填写依赖 &a…

数学生物学-1-指数增长与衰退(Exponential Growth and Decay)

我们注意到数学专业的学生往往没有生物学系统的思维,而生物专业的学生则常常对数学感到恐惧。许多生物专业的学生可能一直对科学感兴趣,部分原因是他们认为生物学是一个不需要任何数学技能或背景就可以研究的科学领域。我认为这是不对的思维。 虽然大多…

Fortify相比其他扫描工具的优势在哪里?

最新发布的 Fortify 22.1.0 版本,不仅能高度兼容最新的软件技术,同时继续保持对运营环境常见的应用安全用例的广泛兼容性。经过强化的 Fortify 进一步提升了性能、准确性、可扩展性和易用性。 无论是运行 DevSecOps、开展云计算转型,还是确保…

Mac移动硬盘选什么格式最好 Mac怎么用ntfs移动硬盘

在使用Mac电脑的过程中,很多用户可能有需要扩展存储空间的需求。选择合适的移动硬盘格式对于数据传输的效率和兼容性至关重要。本文将详细介绍Mac移动硬盘选什么格式好,以及Mac怎么用ntfs移动硬盘,帮助用户优化Mac的使用体验。 一、Mac移动硬…

【具体数学 Concrete Mathematics】1.1.2 平面上的直线

【具体数学 Concrete Mathematics】1.1.2 平面上的直线

仿照ContentLoadingProgressBar 的特点在Android项目中自定义Loading对话框

ContentLoadingProgressBar 是 Android 中的一个控件,继承自 ProgressBar。它在 ProgressBar 的基础上添加了一些特殊功能,主要用于在加载内容时显示进度。它的一些主要特点如下: 自动隐藏和显示:ContentLoadingProgressBar 会在…

引发C++程序内存泄漏的常见原因分析与排查方法总结

目录 1、概述 2、内存泄漏与程序的位数 3、调用哪些接口去动态申请内存? 4、引发内存泄漏的常见原因总结 4.1、通过malloc/new等动态申请的内存,在使用完后,没有调用free/delete去释放(也可能是调用了上面讲到的HeapAlloc或V…

计算机专业大四毕业生如何在一天内完成开题报告?一招教你解锁开题报告写作技巧

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

SQL Server数据库 创建表,和表的增删改查

打开SQL Server工具,连接服务器 右击数据库,创建新的数据库 新建表 填写列,我添加了Id,Name,Sex,Age,和class列 右键表刷新一下就有了 我又同时创建了一个Class表 点击新建查询,现在写代码添加数据,也可以操作表来对数据进行添加 …