python可视化学习(十三)面积图

面积图
作用
#面积图:不仅可以强调波峰与地谷,还可以强调高点与低点持续时间,持续时间越长,
#面积的函数
plt_fill_between
函数功能:填充两条水平曲线之间的区域
x:定义x轴
y1,y2:定义两条曲线的y轴的坐标
where:定义被填充o的区域
interpolate:控制交叉点位置的填充(仅在设定where并且两条曲线相交时起作用)

#认识数据集##
df=pd.read_csv('economics.csv',parse_dates=['date'])
#parse_datasd的作用是将字符串序列转换为日期序列
df.head()

在这里插入图片描述
几种日期转化的方法

df1=pd.read_csv('economics.csv')
df1.info()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#准备绘图所需要的数据与年度收益率有关的是个人储蓄率(psavert)
#数据较多,选用了100行
df=df[:100]
df.psavert.values#提取特征
df.head()

在这里插入图片描述
在这里插入图片描述

plt.plot(df.psavert.values)

在这里插入图片描述

#计算收益后减去前
income=df.psavert.diff().fillna(0)
#计算月度收益率(收益/本金 =(后-前)/前)
re=(income/df.psavert.shift(1)).fillna(0)*100 #shift 向后偏移一个
#绘制目标图像
plt.figure(figsize=(14,8),dpi=60)
#绘制面积图
plt.fill_between(range(df.shape[0]),re,0,where=re>0,color='g',interpolate=True,alpha=0.7)
plt.fill_between(range(df.shape[0]),re,0,where=re<=0,color='r',interpolate=True,alpha=0.7)

在这里插入图片描述

#装饰,修改横坐标的刻度
y=df.date.dt.year
print(y)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c1fde445f22342babc791adcdc575d74.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZmVpd2VueWFuZw==,size_10,color_FFFFFF,t_70,g_se,x_16)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#绘制目标图像
plt.figure(figsize=(14,8),dpi=60)
#绘制面积图
plt.fill_between(range(df.shape[0]),re,0,where=re>0,color='g',interpolate=True,alpha=0.7)
plt.fill_between(range(df.shape[0]),re,0,where=re<=0,color='r',interpolate=True,alpha=0.7)
#修改横坐标的刻度
xtickslabel=[str(m)[:3].upper()+'-'+str(y) for y,m in zip(y,m)][::6]
plt.xticks(range(df.shape[0])[::6],xtickslabel,rotation=90,fontsize=12)
#添加装饰
plt.title('month economics return',fontsize=20)
plt.ylabel('monthly return %')
plt.ylim(-35,35)
plt.xlim(1,100)
plt.grid(alpha=.5);

在这里插入图片描述

#绘制目标图像
plt.figure(figsize=(14,8),dpi=60)
#绘制面积图
plt.fill_between(range(df.shape[0]),re,0,where=re>0,color='g',interpolate=True,alpha=0.7)
plt.fill_between(range(df.shape[0]),re,0,where=re<=0,color='r',interpolate=True,alpha=0.7)
#修改横坐标的刻度
xtickslabel=[str(m)[:3].upper()+'-'+str(y) for y,m in zip(y,m)][::6]
plt.xticks(range(df.shape[0])[::6],xtickslabel,rotation=90,fontsize=12)
#添加注释
plt.annotate('peak \n1975',xy=(94,22),xytext=(85,27),color='w',fontsize=15,
             bbox=dict(boxstyle='square',fc='firebrick')
             ,arrowprops=dict(fc='steelblue',shrink=0.05)
)
#添加装饰
plt.title('month economics return',fontsize=20)
plt.ylabel('monthly return %')
plt.ylim(-35,35)
plt.xlim(1,100)
plt.grid(alpha=.5);

在这里插入图片描述
总结:知识点关于日期的改写,与zip的调用

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值