2024年07月12日 Scipython时间序列绘图 极客笔记
时间序列是指按照时间顺序排列的一系列数据点。在数据分析和预测中,时间序列分析是一种重要的方法,可以帮助我们理解数据的趋势、周期性和规律性。在Python中,有许多强大的工具可以帮助我们对时间序列数据进行可视化分析,其中Scipython是一个集成了SciPy、NumPy和Matplotlib等库的环境,提供了丰富的数据科学功能。
本文将介绍如何使用Scipython中的Matplotlib库绘制时间序列数据的折线图、散点图、柱状图和箱线图,并演示如何使用这些图形来分析不同时间序列数据的特征和趋势。
首先,我们需要导入必要的库,包括NumPy用于数值计算、Pandas用于数据处理和Matplotlib用于数据可视化。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
为了演示时间序列绘图的过程,我们先生成一个示例数据集。假设我们有一个销售数据集,包含了每个月的销售额。
# 生成月份数据
months = pd.date_range('20220101', periods=12, freq='M')
# 生成销售额数据
sales = np.random.randint(10000, 50000, size=12)
# 创建DataFrame对象
df = pd.DataFrame({'Month': months, 'Sales': sales})
print(df)
运行结果:
Month Sales
0 2022-01-31 11398
1 2022-02-28 14441
2 2022-03-31 27059
3 2022-04-30 46357
4 2022-05-31 23658
5 2022-06-30 31550
6 2022-07-31 40563
7 2022-08-31 19956
8 2022-09-30 41979
9 2022-10-31 17047
10 2022-11-30 32393
11 2022-12-31 21833
我们生成了包含12个月销售额的数据集,每个月的销售额在10000到50000之间。
首先,我们使用折线图来展示每个月的销售额变化趋势。折线图适用于展示时间序列数据的趋势和周期性。
plt.figure(figsize=(10, 6))
plt.plot(df['Month'], df['Sales'], marker='o', color='b')
plt.title('Monthly Sales Trend')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.grid(True)
plt.show()
从折线图中我们可以看出,销售额在前三个月波动较大,后续逐渐趋于稳定,并且在四月和八月达到高峰。
接下来,我们使用散点图展示销售额和月份之间的关系,散点图适用于展示数据之间的相关性和分布情况。
plt.figure(figsize=(10, 6))
plt.scatter(df['Month'], df['Sales'], color='r')
plt.title('Sales vs. Month')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.grid(True)
plt.show()
从散点图中我们可以看出,销售额和月份之间呈现一定的相关性,但具体趋势并不明显。
柱状图适用于比较不同类别数据的大小,我们可以使用柱状图来比较每个月的销售额情况。
plt.figure(figsize=(10, 6))
plt.bar(df['Month'], df['Sales'], color='g')
plt.title('Monthly Sales Comparison')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.grid(axis='y')
plt.show()
从柱状图中可以清晰地看出每个月的销售额情况,可以发现四月和八月的销售额较高。
最后,我们使用箱线图展示销售额的分布情况,箱线图能够有效地展示数据的中位数、四分位数和异常值。
plt.figure(figsize=(10, 6))
plt.boxplot(df['Sales'], vert=False)
plt.title('Sales Distribution')
plt.xlabel('Sales')
plt.grid(axis='x')
plt.show()
从箱线图中可以看出销售额的中位数约在25000左右,数据的离散程度较大,有较多的异常值存在。
通过折线图、散点图、柱状图和箱线图的分析,我们可以更好地理解时间序列数据的特征和趋势,从而做出更准确的预测和决策。Scipython提供了丰富的功能和工具,能够帮助我们更好地处理和分析时间序列数据,为数据科学工作提供强大支持。
本文链接:http://so.lmcjl.com/news/8326/