本文将为您详细介绍如何使用Python按照日期(时间)来画折线图。
一、准备工作
首先,我们需要安装Matplotlib包,该包提供了各种绘图函数,包括折线图、柱形图、散点图等等。可以使用以下命令安装:
pip install matplotlib
如果您使用的是Anaconda等科学计算环境,则已经默认安装了Matplotlib。
二、绘制折线图
1、导入模块
在使用Matplotlib之前,需要导入该模块。
import matplotlib.pyplot as plt
2、准备数据
在绘制折线图之前,我们需要准备相应的数据。假设我们要绘制一张每日销售额的折线图,数据如下:
date = ['20210101', '20210102', '20210103', '20210104', '20210105', '20210106', '20210107']
sales = [100, 50, 200, 180, 300, 280, 150]
其中,date为日期字符串,sales为每日销售额。
3、转换日期格式
虽然我们已经有了日期字符串,但是Matplotlib默认无法处理该格式。因此,我们需要将日期字符串转换为可以处理的日期格式。
from datetime import datetime
date = [datetime.strptime(d, '%Y%m%d').date() for d in date]
上述代码中,我们使用datetime模块中的strptime函数将日期字符串转换为日期类型,并且使用date()函数提取日期。
4、绘制折线图
现在,我们终于可以绘制折线图了。使用以下代码即可:
plt.plot(date, sales)
plt.show()
运行上述代码,即可看到绘制好的折线图。
三、优化图像
虽然我们已经成功绘制出折线图,但是这张图还有很多需要优化的地方。
1、添加标题和标签
一张好的图像应该具有标题和标签,以方便观赏者理解。我们可以使用以下代码来添加标题和标签:
plt.title('Daily Sales in January 2021')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.plot(date, sales)
plt.show()
在上述代码中,我们使用title函数添加标题,使用xlabel和ylabel函数添加X轴和Y轴标签。
2、调整坐标轴范围
有时候,我们需要调整坐标轴的范围,以便更好地展示数据。例如,如果销售额的最大值为500,则我们可以将Y轴的范围设置为0-600,以便更好地展示数据。
plt.title('Daily Sales in January 2021')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.ylim([0, 600])
plt.plot(date, sales)
plt.show()
在上述代码中,我们使用ylim函数调整Y轴的范围。
3、调整日期显示格式
在默认情况下,Matplotlib会自动选择最佳的日期格式,并自动旋转X轴标签以避免重叠。但是如果我们希望使用特定的日期格式,则可以使用以下代码:
import matplotlib.dates as mdates
plt.title('Daily Sales in January 2021')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.ylim([0, 600])
plt.plot(date, sales)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d'))
plt.gcf().autofmt_xdate()
plt.show()
在上述代码中,我们首先导入了matplotlib.dates模块,然后使用DateFormatter函数设置日期格式,并使用gca函数获取当前图形的Axes对象。最后,使用autofmt_xdate函数自动旋转X轴标签。
四、总结
本文为您介绍了如何使用Python按照日期(时间)来画折线图。我们首先导入Matplotlib模块,并准备好相应的数据。然后,我们需要将日期字符串转换为可以处理的日期格式,并绘制出折线图。最后,我们对图像进行了优化,添加了标题、标签,并调整了坐标轴范围,同时调整了日期显示格式。