python办公自动化--数据可视化(pandas+matplotlib)--生成条形图和饼状图

前言

前几天我们学习了pandas读取数据,还学习了如何用patplotlib绘制柱状图和折线图。
今天我们继续学习,如何绘制条形图和饼状图。

一、课程回顾-pandas读取数据

1.示例数据文件

在这里插入图片描述

这里我们用到的依旧是d盘底下的这个excel工作簿,这个工作簿里面有四个工作表,如下:
在这里插入图片描述
我们今天用到的是第三个表和第四个表里面的数据,数据如下:
数据表:各个产品销量
在这里插入图片描述
数据表:各大区总利润
在这里插入图片描述

2.pandas读取数据

import pandas as pdfile_name=r"D:\数据可视化示例Excel文件.xlsx"

首先我们导入pandas库,同时将我们的示例文件的路径用file_name来表示

nums_products=pd.read_excel(file_name,sheet_name="各个产品销量")
print("读取各个产品销量")
print(nums_products)

接下来我们读取“各月销售额”这个表格的数据
在这里插入图片描述

profit_continent=pd.read_excel(file_name,sheet_name="各大区总利润")
print("读取各大区总利润")
print(profit_continent)

接下来我们读取“各大区总利润”这个表格的数据

在这里插入图片描述

可以看到,我们通过pandas库成功地读取到了数据可视化示例Excel文件.xlsx这个工作簿里面,名为“各个产品销量”的工作表的数据。

二、matplotlib绘制条形图和饼状图

1.绘制折线图

plt.barh(nums_products.产品,height=0.5,width=nums_products.销量,align="center",label="销量")plt.title("各种产品销量条形图",loc="center")for a,b in zip(nums_products.产品,nums_products.销量):plt.text(b,a,b,ha="center",va="center",fontsize=15,color="red")plt.ylabel("产品名称")
plt.xlabel("二月份销量")plt.grid(False)plt.legend()plt.show()

这里我还是简单说一下各行代码的含义,因为上一篇文章讲的很详细,所以就不多说
点击这里跳转到上一篇文章
第一行表示这是条形图,并设置图形的各个参数
第二行设置标题
第三四行设置数据标签
第五六行设置横纵坐标的意义
第七行表示不要网格线,可以删掉,因为默认就是不要网格线
第八行表示增加图例
第九行表示展示生成的条形图

最后我们将代码进行整合

import matplotlib.pyplot as plt
import pandas as pdfile_name=r"D:\数据可视化示例Excel文件.xlsx"nums_products=pd.read_excel(file_name,sheet_name="各个产品销量")
print("读取各个产品销量")
print(nums_products)plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = Falseplt.barh(nums_products.产品,height=0.5,width=nums_products.销量,align="center",label="销量")plt.title("各种产品销量条形图",loc="center")for a,b in zip(nums_products.产品,nums_products.销量):plt.text(b,a,b,ha="center",va="center",fontsize=15,color="red")plt.ylabel("产品名称")
plt.xlabel("二月份销量")plt.grid(False)plt.legend()plt.show()

运行代码后我们可以得到条形图如下:
在这里插入图片描述

2.绘制饼状图

import matplotlib.pyplot as plt
import pandas as pdfile_name=r"D:\数据可视化示例Excel文件.xlsx"profit_continent=pd.read_excel(file_name,sheet_name="各大区总利润")
print("读取各大区总利润")
print(profit_continent)plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = Falseplt.pie(profit_continent.利润,labels=profit_continent.大区,autopct="%.0f%%",shadow=True,radius=1.0)
plt.title("各大洲利润饼状图",loc="center",fontdict={"size":"15","color":"red","weight":"bold"})
plt.show()

运行后结果如下:
在这里插入图片描述

当然,上述图形并不好看,因为matplotlib在最开始的时候只是为了满足工业作图的要求,能做出来就行了,要什么自行车。
但是随着互联网的发展,这种图已经满足不了我们的需求了。
有兴趣的同学可以自行去了解一下如何优化这些图形。
当然,如果有兴趣,后续我们可以讲一讲seaborn等第三库,那才是真正精彩的世界。

总结

今天我们复习了前一天学习的pandas读取excel表格的数据,同时学习了如何用matplotlib库将读取的数据生成条形图和饼状图。
后面有时间我们再更新学习其它图知识的文章。

有兴趣的朋友可以点个关注和订阅哟!!!!

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

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

相关文章

基于大模型的结节性甲状腺肿诊疗全流程预测与方案研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究意义 1.3 国内外研究现状 二、大模型预测原理与方法 2.1 相关大模型概述 2.2 数据收集与预处理 2.3 模型训练与验证 三、术前预测与评估 3.1 结节性质预测 3.1.1 良恶性判断 3.1.2 与传统诊断方法对比 3.2 手术风险预测…

不同开发语言对字符串的操作

一、字符串的访问 Objective-C: 使用 characterAtIndex: 方法访问字符。 NSString *str "Hello, World!"; unichar character [str characterAtIndex:0]; // 访问第一个字符 H NSLog("%C", character); // 输出: H NSString 内部存储的是 UTF-16 编…

Java开发者如何接入并使用DeepSeek

目录 一、准备工作 二、添加DeepSeek SDK依赖 三、初始化DeepSeek客户端 四、数据上传与查询 五、数据处理与分析 六、实际应用案例 七、总结 【博主推荐】:最近发现了一个超棒的人工智能学习网站,内容通俗易懂,风格风趣幽默&#xff…

S19文件格式详解:汽车ECU软件升级中的核心镜像格式

文章目录 引言一、S19文件格式的起源与概述二、S19文件的核心结构三、S19在汽车ECU升级中的应用场景四、S19与其他格式的对比五、S19文件实例解析六、工具链支持与安全考量七、未来趋势与挑战结语引言 在汽车电子控制单元(ECU)的软件升级过程中,S19文件(也称为Motorola S-…

CTF杂项——[suctf 2019]签到题

base64转图片 可以直接用随波逐流 得到flag SUCTF{ffffffffT4nk}

【Python】整数除法不正确,少1的问题,以及有关浮点数转换的精度问题

1. 问题 今天在做leetcode 不同路径 的时候发现了个问题 对于m53 n4class Solution:def uniquePaths(self, m: int, n: int) -> int:rlt 1for i in range(0, m-1):rlt * (m n - 2 - i)for i in range(0, m-1):rlt / (i 1)return int(rlt)为什么这个结果是 26234class S…

AI无代码平台

以下是目前支持快速开发产品的高生产力免费AI无代码平台推荐,按功能和适用场景分类: 一、全栈应用开发类 Bolt.DIY DeepSeek-R1 无需编写代码即可开发全栈应用,提供免费API和无速率限制,支持AI编码助手与自动化流程 。 优势&…

Gini系数的应用 - 指标波动贡献分析

基尼系数的定义 基尼系数是衡量数据分布不均衡程度的指标,取值范围在0到1之间: 0 表示完全均衡(所有值相等)。1 表示完全不均衡(所有值集中在一个点)。 基尼系数的计算公式 假设有 n n n 个数据点&…

第一节: 网络基础与参考模型

深入理解OSI七层模型与TCP/IP四层模型:网络工程师的入门指南 在网络通信的世界中,OSI七层模型和TCP/IP四层模型是理解网络架构的基础。无论是配置路由器、排查网络故障,还是设计复杂的网络系统,掌握这些模型的分层结构及其功能都是必不可少的。本文将从新手角度出发,深入…

HTTP拾技杂谈

HTTP拾技杂谈 简单聊聊HTTP中的那些东西 文章目录 HTTP拾技杂谈前言HTTP协议1.请求从客户端到服务器端的4个步骤一般客户端请求如下:服务端响应如下 2.Keep-AliveHTTP方法Cookie 总结 前言 超文本传输协议(Hypertext Transfer Protocol ,HT…

用Deepseek写一个五子棋微信小程序

在当今快节奏的生活中,休闲小游戏成为了许多人放松心情的好选择。五子棋作为一款经典的策略游戏,不仅规则简单,还能锻炼思维。最近,我借助 DeepSeek 的帮助,开发了一款五子棋微信小程序。在这篇文章中,我将…

自然语言处理:最大期望值算法

介绍 大家好,博主又来给大家分享知识了,今天给大家分享的内容是自然语言处理中的最大期望值算法。那么什么是最大期望值算法呢? 最大期望值算法,英文简称为EM算法,它的核心思想非常巧妙。它把求解模型参数的过程分成…

【从零开始学习计算机科学】计算机体系结构(一)计算机体系结构、指令、指令集(ISA)与量化评估

【从零开始学习计算机科学】计算机体系结构(一)计算机体系结构、指令、指令集(ISA)与量化评估 概论计算机体系结构简介计算机的分类并行体系结构指令集体系结构(ISA)分类存储器寻址寻址模式操作数大小指令ISA的编码程序的优化计算机体系结构量化评估存储器体系结构概论 …

Electron使用WebAssembly实现CRC-32 常用标准校验

Electron使用WebAssembly实现CRC-32 常用标准校验 将C/C语言代码,经由WebAssembly编译为库函数,可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-32 常用标准格式校验的方式。 CRC-32 常用标准校验函数WebAssembly源文件…

Docker基础篇——Ubuntu下Docker安装

大家好我是木木,在当今快速发展的云计算与云原生时代,容器化技术蓬勃兴起,Docker 作为实现容器化的主流工具之一,为开发者和运维人员带来了极大的便捷 。下面我们一起进行Docker安装。 Docker的官方Ubuntu安装文档,如…

第五课:Express框架与RESTful API设计:技术实践与探索

在使用Node.js进行企业应用开发,常用的开发框架Express,其中的中间件、路由配置与参数解析、RESTful API核心技术尤为重要,本文将深入探讨它们在应用开发中的具体使用方法,最后通过Postman来对开发的接口进行测试。 一、Express中…

mitmproxy配合Wireshark 抓包分析

Mitmproxy 是一款非常强大的 交互式 HTTP 代理 工具,它被广泛应用于 Web 开发、API 调试、安全测试 等领域。与 Wireshark 侧重于被动监听网络流量不同,Mitmproxy 更像一个 主动的中间人,可以拦截、检查、修改和重放 HTTP/HTTPS 流量&#xf…

Varlens(手机上的单反)Ver.1.9.3 高级版.apk

Varlens 是一款专业级手机摄影软件,旨在通过丰富的功能和高自由度参数调节,让手机拍摄效果媲美微单相机。以下是核心功能总结: 一、核心功能 专业拍摄模式 支持手动/自动/程序模式,可调节ISO、快门速度、EV、白平衡等参数27 提供…

Scala 中的访问修饰符

在Scala中,面向对象的权限控制主要通过访问修饰符来实现。Scala提供了以下几种访问修饰符来控制类、对象、成员变量和方法的访问权限: 1. 默认访问权限(无修饰符) 如果没有指定任何访问修饰符,成员默认是public的&…

第十五届蓝桥杯省赛电子类单片机学习过程记录(客观题)

客观试题: 01.典型的BUCK电源电路包含哪些关键器件(ABCD) A. 电容 B. 二极管 C. 电感 D. MOSFET 解析: 典型的 BUCK 电源电路是一种降压型的直流-直流转换电路,它包含以下关键器件: A.电容:电容在电路中起到滤波的作用。输入电容用于平滑输入电压的波动,减少电源噪声对…