python办公自动化--数据可视化(pandas+matplotlib)--生成折线图

前言

昨天我们学习了使用Python的pandas库来读取excel表格的数据,同时学习了如何使用matplotlib来作图。
昨天我们是根据各个国家销量来创建的柱状图,今天我们来学习一下折线图,用到的还是昨天的示例工作簿,但是我们用到的是第二个工作表:各个月销售额
用到的工具依旧是python中的pandas和matplotlib这两个库。

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

1.示例数据文件

在这里插入图片描述

这里我们用到的依旧是d盘底下的这个excel工作簿,这个工作簿里面有四个工作表,如下:
在这里插入图片描述
我们今天用到的是第二个表里面的数据,数据如下:
在这里插入图片描述

2.pandas读取数据

import pandas as pd

file_name=r"D:\数据可视化示例Excel文件.xlsx"

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

sales_month=pd.read_excel(file_name,sheet_name="各月销售额")
print("读取各月销售额")
print(sales_month)

接下来我们读取“各月销售额”这个表格的数据

在这里插入图片描述
可以看到,我们通过pandas库成功地读取到了数据可视化示例Excel文件.xlsx这个工作簿里面,名为“各月销售额”的工作表的数据。

二、matplotlib绘制折线图

1.绘制基本的折线图

首先,和上一节一样,我们导入matplotlib库,同时防止因为中文和负数产生的乱码

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

接下来,我们绘制出基本的折线图

plt.plot(sales_month.月份,sales_month.销售额,color="red",linestyle="dashdot",linewidth=1,marker="o",markersize=5,label="销售额")
plt.title("各个月份销售变化",loc="center")
plt.show()

首先分析上面代码
第一行中:
sales_month就是我们上面的每月销售额这个表
sales_month.月份表示用这个表的月份这一列来作为x轴
sales_monh.销售额表示用这个表的销售额这一列作为y轴
color="red"表示折线的颜色为红色
后面的代码都是用来设置图形的样式的,这里我不一一分析,大家可以自行搜索学习
第二行代码:给这个折线图加一个标题,标题叫做“各个月份销售变化”
第三行代码:展示折线图

我们运行代码后,绘制出来的折线图如下:
在这里插入图片描述

2.优化折线图

看到这个折线图,我们会发现它似乎缺少几个东西

(1)首先就是数据标签,我们希望在每个折线的点上标记处它的值

for a,b in zip(sales_month.月份,sales_month.销售额):
    plt.text(a,b,b,ha="center",va="bottom",fontsize=10)

上述代码,将销售额的值作为每个节点的值,并设置数据标签在中间位置,大小为10

(2)其次是横轴和纵轴的名字,也就是说横轴和纵轴的刻度代表什么含义

plt.xlabel("2024年各个月")
plt.ylabel("各个月份销售额")

上述代码表示横轴的名字叫:“2024年各个月”,纵轴的名字叫做:“各个月份销售额”

(3)最后是网格线,网格线可以帮助我们看得更清楚

plt.grid(True)

上述代码括号中的内容如果是True,表示添加网格线,如果是False,表示不添加网格线
默认是不添加,也就是说默认这里是False,当你不写这行代码时,默认不显示网格线

3.整合代码,显示结果

下面我们将上述所有代码整合到一起

import pandas as pd

file_name=r"D:\数据可视化示例Excel文件.xlsx"

sales_month=pd.read_excel(file_name,sheet_name="各月销售额")
print("读取各月销售额")
print(sales_month)

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.plot(sales_month.月份,sales_month.销售额,color="red",linestyle="dashdot",linewidth=1,marker="o",markersize=5,label="销售额")
plt.title("各个月份销售变化",loc="center")

for a,b in zip(sales_month.月份,sales_month.销售额):
    plt.text(a,b,b,ha="center",va="bottom",fontsize=10)

plt.xlabel("2024年各个月")
plt.ylabel("各个月份销售额")
plt.grid(True)
plt.legend()
plt.show()

点击运行后,结果显示如下:
在这里插入图片描述

总结

今天我们复习了前一天学习的pandas读取excel表格的数据,同时学习了如何用matplotlib库将读取的数据生成折线图,还学习了如何优化这个折线图。
后面有时间我们再更新学习其它图形的文章。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值