本文将介绍如何通过python来读取、展现时间序列数据。
时间序列数据一般用cvs等电子表格的形式存储,这里以cvs为例:
from dateutil.parser import parse
from datetime import datetime
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
params = {
'font.family': 'serif',
'font.serif': 'FangSong',
'font.style': 'italic',
'font.weight': 'normal', # or 'blod'
'font.size': 12, # 此处貌似不能用类似large、small、medium字符串
'axes.unicode_minus': False
}
rcParams.update(params)
import matplotlib.pyplot as plt
import pandas as pd
# 未来pandas版本会要求显式注册matplotlib的转换器,所以添加了下面两行代码,否则会报警告
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
# Import as Dataframe
date_parse = lambda x: datetime.strptime(x, '%Y-%m-%d')
ser = pd.read_csv(
'https://raw.githubusercontent.com/selva86/datasets/master/a10.csv',
index_col='Month', # 指定索引列
parse_dates=['Month'], # 将指定列按照日期格式来解析
date_parser=date_parse) # 日期格式解析器
ser .head()
import matplotlib.pyplot as plt
df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/a10.csv', parse_dates=['date'], index_col='date')
# Draw Plotdef plot_df(df, x, y, title="", xlabel='Date', ylabel='Value', dpi=100):
plt.figure(figsize=(16,5), dpi=dpi)
plt.plot(x, y, color='tab:red')
plt.gca().set(title=title, xlabel=xlabel, ylabel=ylabel)
plt.show()
plot_df(df, x=df.index, y=df.value, title='Monthly anti-diabetic drug sales in Australia from 1992 to 2008.')
本篇介绍了时间序列的一般数据格式和基于python的可视化方法,下一篇将介绍时间序列的分解方法,目的是通过分解出的时间序列的各个成分来进一步的了解时间序列。