实验内容:
绘制显示时间序列趋势和关系的折线图,观察某段时间内的整体概览,发现数据在这段时间内的发展情况。
实验要求:
自选时间序列型数据集,绘制折线图。要求说明数据集来源,详细介绍数据集内容。
实验目的:
掌握折线图的绘制方法,理解时间序列数据的可视化方法。
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
import numpy as np
from plotnine import *
from scipy import interpolate
import time
df=pd.read_csv('Line_Data.csv',index_col =0)
df.index=[datetime.strptime(d, '%Y/%m/%d').date() for d in df.index]
fig =plt.figure(figsize=(5,4), dpi=100)
plt.plot(df.index, df.AMZN, color='#F94306', label='AMZN')
plt.plot(df.index, df.AAPL, color='#06BCF9', label='AAPL')
plt.xlabel("Year")
plt.ylabel("Value")
plt.legend(loc='upper left',edgecolor='none',facecolor='none')
plt.show()
df=pd.read_csv('Area_Data.csv')
df['x']=[time.mktime(time.strptime(d, '%Y/%m/%d')) for d in df['date']]
f = interpolate.interp1d(df['x'], df['value'], kind='quadratic')
x_new=np.linspace(np.min(df['x']),np.max(df['x']),600)
df_interpolate=pd.DataFrame(dict(x=x_new,value=f(x_new)))
df_interpolate['date']=[datetime.strptime(time.strftime('%Y-%m-%d', time.gmtime(d)), '%Y-%m-%d') for d in df_interpolate['x']]
base_plot=(ggplot(df_interpolate, aes(x ='date', y = 'value',group=1) )+
geom_bar(aes(fill='value',colour='value'),stat = "identity",alpha=1,width =2)+
geom_line(color="black",size=0.5)+
scale_color_cmap(name ='Reds')+
scale_x_date(date_labels = "%Y",date_breaks = "2 year")+
xlab("Year")+
ylab("Value")+
guides(fill=False)+
theme(
axis_title=element_text(size=10,face="plain",color="black"),
axis_text = element_text(size=10,face="plain",color="black"),
legend_background = element_blank(),
legend_position = (0.25,0.65),
aspect_ratio =0.85,
figure_size = (5, 5),
dpi = 100
))
print(base_plot)