数据可视化实验报告之财经数据可视化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

过程图片
CPI前五项:
结果:
分析
从上图中可以清晰地看出,93、94、95、96年左右出现了较高的通货膨胀,而在07年左右也出现了大于5%的通货膨胀。

当CPI升幅过大的时候,表明居民生活成本较之以前变高,如果收入没有增加那么相对于社会环境来说收入实际是降低了。

代码
import pandas as pd
import matplotlib.pyplot as plt
import tushare as ts
import matplotlib as mpl
mpl.rcParams['font.sans-serif']=['SimHei'] #指定默认字体 SimHei为黑体
money_supply=ts.get_money_supply()#获取货币供应量数据
print(money_supply.head()) #输出money_supply前5行
money_supply=money_supply.sort_values('month').iloc[228:,:]
money_supply.to_csv("C:/Users/asus/Desktop/财经数据/money supply.csv")
#按month升序,取出连续不缺失的观测值,保存为csv格式文件
date=pd.date_range('1997-1-1',periods=len(money_supply),freq='M')
#用date重新定义时间,从1997.1.1开始到money_supply时间段内,按月的频率
df=pd.read_csv("C:/Users/asus/Desktop/财经数据/money supply.csv") #读取csv文件
df.index=date #设置下标时间
df=df.iloc[:,2:8] #取出2-7列所有数据(拿所需数据)
df.rename(columns={'m2_yoy':'M2增长率','m1_yoy':'M1增长率',
'm0_yoy': 'M0增长率'},inplace=True)
#更改对应列的列名称
df.head()
print(df.head()) #输出money_supply前5行
df[["M2增长率","M1增长率"]].plot(figsize=(12,6)) #绘制曲线图
plt.title('M2和M1月度同比增长百分比',size=16)#设置标签
plt.xlabel('时间',size=14)
plt.ylabel('百分比',size=14)
#设置x,y轴标题
#设置图注,xy=(横坐标,纵坐标),为箭头尖端;
# xytext=(横坐标,纵坐标),为文字的坐标,指的是最左边的坐标
#arrowprops设置图注颜色大小
plt.annotate('亚洲金融危机',size=13,xy=('1997-7-1',24),xytext=('1998-1-
1',27),
arrowprops=dict(facecolor='black',shrink=0.05),)
plt.annotate('美国次贷危机',size=13,xy=('2007-8-1',20),xytext=('2008-1-
1',24),
arrowprops=dict(facecolor='red',shrink=0.05),)
plt.annotate('四亿万刺激计划',size=13,xy=('2009-1-1',30),xytext=('2010-1-
1',32),
arrowprops=dict(facecolor='orange',shrink=0.05),)
plt.annotate('金融去杠杆',size=13,xy=('2016-8-1',12),xytext=('2017-1-1',15), arrowprops=dict(facecolor='blue',shrink=0.05),)
plt.grid() #网格线
plt.show()
过程图片
未筛选的初始数据前五项
筛选、处理后的数据前五项
结果图
分析
从上图可以发现,出现金融危机、美国次贷危机的时候明显M1、M2的同比增长率明显进行了下降,而我国推行的“四万亿刺激计划”使M2和M1的增长率达到峰值,2016-2017年以来,金融去杠杆后M1、M2一直处于下降的状态,而较于M2而言,M1的波动一直大于M2。

代码
import pandas as pd
import matplotlib.pyplot as plt
import tushare as ts
import matplotlib as mpl
mpl.rcParams['font.sans-serif']=['SimHei'] #指定默认字体 SimHei为黑体
#分别获取M1,M2,GDP的数据,按年的升序排列,并保存为csv文件
money_supply_year=ts.get_money_supply_bal()
money_supply_year=money_supply_year.sort_values('year')
money_supply_year.to_csv("C:/Users/asus/Desktop/财经数据
/money_supply_year.csv")
GDP=ts.get_gdp_year()
GDP=GDP.sort_values('year')
GDP.to_csv("C:/Users/asus/Desktop/财经数据/GDP.csv")
#读取csv文件的数据
df1=pd.read_csv("C:/Users/asus/Desktop/财经数据/money_supply_year.csv") dateparse=lambda dates:pd.datetime.strptime(dates,'%Y') #重新设定日期格式
#将year作为数据框架的index导入
df1=pd.read_csv("C:/Users/asus/Desktop/财经数据
/money_supply_year.csv",parse_dates=
['year'],index_col=['year'],date_parser=dateparse)
df2=pd.read_csv("C:/Users/asus/Desktop/财经数据/GDP.csv",parse_dates=
['year'],index_col=['year'],date_parser=dateparse)
#parse_dates为解析指定行为date类型;index_col为指定某列为行索引;
#date_parser:指定将输入的字符串转换为可变的时间数据
df2=df2[38:]
df=pd.DataFrame()
df["M2/GDP"]=df1["m2"]/df2["gdp"] #计算M2/GDP的比率
df["M1/GDP"]=df1["m1"]/df2["gdp"] #计算M1/GDP的比率
df[["M2/GDP","M1/GDP"]].plot(figsize=(12,6)) #绘制曲线
plt.title('M2/GDP与M1/GDP的历年走势',size=16)
plt.xlabel('时间',size=14)
plt.ylabel('M2/GDP',size=14)
#设置x,y轴标题
#设置图注,xy=(横坐标,纵坐标),为箭头尖端;
# xytext=(横坐标,纵坐标),为文字的坐标,指的是最左边的坐标
#arrowprops设置图注颜色大小
plt.annotate('亚洲金融危机',size=13,xy=('1997-7-1',1.2),xytext=('1998-1-
1',1.3),
arrowprops=dict(facecolor='black',shrink=0.05),)
plt.annotate('美国次贷危机',size=13,xy=('2007-8-1',1.5),xytext=('2008-1-
1',1.6),
arrowprops=dict(facecolor='red',shrink=0.05),)
plt.annotate('四亿万刺激计划',size=13,xy=('2009-1-1',1.8),xytext=('2010-1-
1',1.9),
arrowprops=dict(facecolor='orange',shrink=0.05),)
plt.annotate('金融去杠杆',size=13,xy=('2016-8-1',2.05),xytext=('2017-1-
1',1.9),
arrowprops=dict(facecolor='blue',shrink=0.05),)
plt.grid() #网格线
plt.show()
过程图片
分析
从上图不难看出,M2/GDP总体上是曲折上升的,而M1/GDP总体上升较为缓慢,M2/GDP从1990年的不到90%到2017年的接近220%。

2017年以来,尽管经济增长一直处于下行空间,但在金融去杠杆的影响下,广义货币供应量持续下滑,导致M2/GDP出现下降趋势。

如此看来GDP的增长率是快于M1,M2的,而且M2快于M1。

代码
import pandas as pd
import matplotlib.pyplot as plt
import tushare as ts
import matplotlib as mpl
mpl.rcParams['font.sans-serif']=['SimHei'] #指定默认字体 SimHei为黑体
#获取消费、投资、净出口率,按年的升序排列,并保存为csv文件
gdp_for=ts.get_gdp_for()
gdp_for.head()
gdp_for=gdp_for.sort_values('year')
gdp_for.to_csv("C:/Users/asus/Desktop/财经数据/gdp_for.csv")
dateparse=lambda dates:pd.datetime.strptime(dates,'%Y') #重新设定日期格式
df=pd.read_csv("C:/Users/asus/Desktop/财经数据/gdp_for.csv",parse_dates=
['year'], index_col='year', date_parser=dateparse) #读取csv 文件
df.rename(columns={'end_for':'消费贡献率','asset_for':'投资贡献率',
'goods_for': '净出口贡献率'},inplace=True)
#更改对应列的列名称
df[["消费贡献率","投资贡献率","净出口贡献率"]].plot(figsize=(12,6)) #绘制曲线图
plt.title('M2和M1月度同比增长百分比',size=16) #设置标签
plt.xlabel('时间',size=14)
plt.ylabel('百分比',size=14)
#设置x,y轴标题
#设置图注,xy=(横坐标,纵坐标),为箭头尖端;
# xytext=(横坐标,纵坐标),为文字的坐标,指的是最左边的坐标
#arrowprops设置图注颜色大小
plt.annotate('亚洲金融危机',size=13,xy=('1997-7-1',30),xytext=('1998-1-
1',34),
arrowprops=dict(facecolor='black',shrink=0.05),)
plt.annotate('美国次贷危机',size=13,xy=('2007-8-1',19),xytext=('2008-1-
1',22),
arrowprops=dict(facecolor='red',shrink=0.05),)
plt.annotate('四亿万刺激计划',size=13,xy=('2009-1-1',80),xytext=('2010-1-
1',60),
arrowprops=dict(facecolor='orange',shrink=0.05),)
plt.annotate('金融去杠杆',size=13,xy=('2016-8-1',40),xytext=('2017-1-1',38), arrowprops=dict(facecolor='blue',shrink=0.05),)
plt.grid() #网格线
plt.show()
过程图片
分析
从上图可以看出,净出口贡献率大多时候是负的,但这并不意味着外贸在拖经济后退。

从总需求角度,一国的GDP可以分解为总投资、总消费和净出口三个部分,净出口是指出口额与进口额之差,净出口对GDP增长的贡献率=净出口增量/GDP增量×100%。

因此,净出口指标以及净出口贡献率,表示的是外贸对GDP的统计贡献度。

净出口贡献率是负数,表明外需对经济增长的拉动作用在减弱,但并不表明对外贸易对经济增长起了负的拉动作用。

更为明显的是,消费贡献率和投资贡献率随着时间的推移,两者之间的差距是越来越小,其中投资和净出口的贡献率波动较大,消费贡献率波动较小。

相关文档
最新文档