python办公自动化--数据可视化(pandas读取excel文件,matplotlib生成可视化图表)
Python办公自动化-pandas+matplotlib实现数据可视化
前言
在这个信息爆炸的时代,越来越多的数据充斥着我们的工作和生活。
在数据分析领域中,传统的excel有着太多的局限性,已经难以满足我们的日常工作需求。
因此,python的地位也就越来越高。
而在python数据分析的领域,pandas是最适合做数据处理的,matplotlib也是大多数人最先学习的用于作图的第三方库。
因此,本篇文章通过pandas和matplotlib两个库来进行我们的数据可视化演示。
一、pandas库
首先我们在电脑的d盘下创建这样一个excel工作簿,叫做:数据可视化示例Excel文件.xlsx
在这个工作簿里面,有四个工作表
分别是:各个国家销量,各月销售额,各个产品销量和各大区总利润
这四个sheet里面的数据内容如下:
第一个工作表:各个国家销量
第二个工作表:各月销售额
第三个工作表:各个产品销量
第四个表:各大区总利润
下面我们来看一下如何使用pandas读取数据
首先我们安装好python和pycharm(怎么安装这里我就不写了,csdn上很多地方都有)
在终端使用:pip install pandas导入pandas库
pip insatall pandas
然后我们导入pandas库
import pnadas as pd

接下里我们用一个变量来表示我们要读取的excel文件,这里为了别人,也为了自己以后可以修改,变量名字最好不要使用a,b,c,d这些没意义的名称
这里我使用file_name来通过绝对路径表示
file_name=r"D:\数据可视化示例Excel文件.xlsx"
记住,这里要在前面加一个r,这是因为在python中 \ ,也就是反斜杠表示转义,因此我们需要加一个r来使得反斜杠不要发挥它的转义作用
另一个就是,如果要成功读取,一定记得把这个表格放在d盘,而且是直接在d盘,就是说打开d盘就直接能看到这个表格,不要把这个表格放在d盘某一个文件夹里,那样的话你用上面的代码是找不到这个文件的
接下来,我们尝试一下读取第一个表:各个国家销量
orders_country=pd.read_excel(file_name,sheet_name="各个国家销量")
这行代码里面,orders_country用来接收我们读取的表格,
pd是pandas的缩写,因为我们上面在导入pandas的时候,不是写了import pandas as pd 吗,这行代码有两个作用,一个是导入pandas库,你导入了,才能使用它的功能来读取表格,另一个就是用pd来代替pandas,因为有些库的名字很长,你每次都写全称就很麻烦
file_name就是我们上面的文件,sheet_name="各个国家销量"就是表示读取这给工作簿里面,名字叫做“各个国家销量”的工作表里面的全部数据
读取完以后,我们通过print函数来显示一下读取结果
print(orders_country)
点击运行后结果如下:

可以看到我们已经成功读取了
接下来我们可以继续读取其它几个表格
代码整合如下:
import pandas as pd
file_name=r"D:\数据可视化示例Excel文件.xlsx"
orders_country=pd.read_excel(file_name,sheet_name="各个国家销量")
print("读取各个国家销量")
print(orders_country)
sales_month=pd.read_excel(file_name,sheet_name="各月销售额")
print("读取各月销售额")
print(sales_month)
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)
在pycharm上我们输入上面的代码,然后点击运行:
运行后结果如下:
到此刻为止,我们就实现了数据的读取,下面我们讲一下如何将上面读取到的数据作图。
二、matplotlib库作图
同上,我们先导入matplotlib的pyplot
import matplotlib.pyplot as plt
接下来,我们需要输入以下两行代码来解决中文乱码和负号的问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
最后,我们根据上面读取到的第一个表格,也就是各个国家销量这个表,根据这数据的国家这一列和销量这一列,将“国家”列作为x轴,“销量”列作为y轴,来作图
plt.bar(orders_country.国家,orders_country.销量,width=0.5,align="center")
plt.title("各个国家销量柱状图")
for a,b in zip(orders_country.国家,orders_country.销量):
plt.text(a,b,b,ha="center",va="bottom",fontsize=15)
plt.xlabel("各个国家")
plt.ylabel("订单销量")
plt.show()
第一行代码:plt.bar表示画的是柱状图,orders_country.国家表示用orders_country这个表里的国家这一列作为x轴,用这个表里面销量这一列作为y轴,画一个宽度为0.5的柱状图
第二行:表示这个图片的名字叫做“各个国家销量柱状图”
第三第四行:表示设置数据标签
第五第六行:设置x轴和y轴的名字
第七行;显示图片
最后我们用show来展示生成的图片
plt.show()
运行代码后我们可以看到生成的图片如下:
接下来,我们可以将图片保存到本地,比如我们在D盘建立一个文件夹叫做“matplotlib图片文件夹”
用来保存这个图片
代码合计如下:
import pandas as pd
file_name=r"D:\数据可视化示例Excel文件.xlsx"
orders_country=pd.read_excel(file_name,sheet_name="各个国家销量")
# print("读取各个国家销量")
# print(orders_country)
sales_month=pd.read_excel(file_name,sheet_name="各月销售额")
# print("读取各月销售额")
# print(sales_month)
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)
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.bar(orders_country.国家,orders_country.销量,width=0.5,align="center")
plt.title("各个国家销量柱状图")
for a,b in zip(orders_country.国家,orders_country.销量):
plt.text(a,b,b,ha="center",va="bottom",fontsize=15)
plt.xlabel("国家")
plt.ylabel("销量")
plt.savefig("D:\matplotlib图片文件夹\各个国家销量柱状图.png")
点击运行后:
这样我们就在d盘生成了这样一个柱状图,柱状图的数据就是我们上面读取的各个国家销量这个表格里面的数据
总结
到此为止,我们就完成了数据的提取和作图,至于其它几个表和图的生成,我们到后面再学习。
有兴趣的点个关注和专栏订阅哟!!!!!
更多推荐




所有评论(0)