Matplotlib 如何在12个月的坐标轴上绘制年度数据
在本文中,我们将介绍如何使用Matplotlib中的Python绘制一个图表,该图表可以显示年度数据,并以12个月的坐标轴显示。
阅读更多:Matplotlib 教程
准备工作
在开始之前,我们需要先安装Matplotlib库。安装方法可以到Matplotlib官网中查看,也可以使用pip进行安装:
pip install matplotlib
安装好Matplotlib之后,我们就可以开始绘图工作了。
代码实现
在本节中,我们将介绍一个简单的Python代码,用来绘制一个基本的年度数据图表。
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
years = np.array([2016, 2017, 2018, 2019, 2020])
data = np.array([10, 20, 30, 40, 50])
# 绘制图表
fig, ax = plt.subplots()
ax.plot(years, data)
# 设置X轴刻度
ax.set_xticks(years)
ax.set_xticklabels(years, rotation=45)
# 设置图表标题和坐标轴标签
ax.set_title('Yearly Data')
ax.set_xlabel('Year')
ax.set_ylabel('Data')
plt.show()
在上面的代码中,我们首先生成了一个包含5个年份和对应数据的数组。然后,我们使用Matplotlib中的plot()函数绘制了这个数组的线性图表。接着,我们使用set_xticks()函数和set_xticklabels()函数来为X轴设置刻度和标签。最后,我们为图表设置了标题和X、Y轴标签。
这个图表可以很清晰地展示不同年份之间的数据变化趋势,但它并未按月份进行排序或绘制月度数据。下一节中,我们将介绍如何将年度数据绘制在12月份的坐标轴上。
在12个月份的坐标轴上绘制年度数据
要将数据绘制在12个月份的坐标轴上,我们需要用到Matplotlib中的一个叫“Locator”和“Formatter”的组合对象。Locator对象用于控制坐标轴上的数据点位置,而Formatter对象用于控制坐标轴上的标签显示。
代码实现如下:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.dates as mdates
# 生成数据
years = np.array([2016, 2017, 2018, 2019, 2020])
data = np.array([10, 20, 30, 40, 50])
# 将年份转换为datetime对象
years = np.array([np.datetime64(str(year)) for year in years])
# 绘制图表
fig, ax = plt.subplots()
ax.plot(years, data)
# 设置X轴为月份
ax.xaxis.set_major_locator(mdates.MonthLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%b'))
# 设置图表标题和坐标轴标签
ax.set_title('Yearly Data')
ax.set_xlabel('Month')
ax.set_ylabel('Data')
plt.show()
在上面的代码中,我们首先使用NumPy的datetime64数据类型将年份数据转换为日期数据。然后,我们使用MonthLocator对象将X轴转换为月份,并使用DateFormatter对象格式化X轴标签为月份的缩写。最后,我们为图表设置了标题和X、Y轴标签。
这个图表清晰地展示了每个月份的数据值,并且可以很容易地看出数据的增长趋势和变化周期。
总结
通过本文,我们学习了如何使用Matplotlib库在12个月的坐标轴上绘制年度数据。我们介绍了如何使用Locator和Formatter对象将年份数据转换为月份数据,并在坐标轴上格式化标签。通过本文学习,读者将能够更好地掌握Matplotlib中的数据可视化操作,并且能够熟练绘制带有时间轴的数据图表。