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

前言

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

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

1.示例数据文件

在这里插入图片描述

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

2.pandas读取数据

import pandas as pd

file_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 pd

file_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'] = False

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()

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

2.绘制饼状图

import matplotlib.pyplot as plt
import pandas as pd

file_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'] = False

plt.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库将读取的数据生成条形图和饼状图。
后面有时间我们再更新学习其它图知识的文章。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值