前言
昨天我们学习了使用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库将读取的数据生成折线图,还学习了如何优化这个折线图。
后面有时间我们再更新学习其它图形的文章。
有兴趣的朋友可以点个关注和订阅哟!!!!