数据可视化(二)A股三大指数10年涨跌幅比较:数据可视化

获得数据之后,利用matplotlib做一个10年累计涨跌幅动画。

工具:
Jupyter notebook
matplotlib
pandas

思路:

  1. 准备数据
  2. 创建画布
  3. 初始化图像
  4. 更新图像
  5. 创建动画对象
  6. 展示

代码如下:

%matplotlib notebook  

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

from matplotlib.animation import FuncAnimation

# 用于显示中文
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

# 1.准备数据
# 1.1 加载数据
datas = pd.read_csv('./三大指数累积涨幅对比.csv')
# 1.2 准备折线图需要的数据
# 日期,作为横轴的刻度
x_ticks = datas.iloc[0:, 0]
# x轴的数据
x = list(range(x_ticks.shape[0]))
# 上证综指涨跌幅
sh_000001 = datas['上证综指'].values
sz_399001 = datas['深圳成指'].values
sz_399006 = datas['创业板指'].values

# 2. 创建画布
fig, ax = plt.subplots(figsize=(10, 6), dpi=100)
# 3.1 初始化折线图对象
sh_000001_line, = plt.plot([], [], color='r', label='上证综指')
sz_399001_line, = plt.plot([], [], color='g', label='深圳成指')
sz_399006_line, = plt.plot([], [], color='b', label='创业板指')
# 3.2显示图例
plt.legend()
# 3.3 设置x轴,y轴的范围以及x轴的刻度
ax.xaxis.set_major_locator(ticker.MultipleLocator(250))
plt.ylim(min(sz_399006), max(sz_399006))
plt.xlim(0, max(x))
plt.xticks(x[0::250], x_ticks[0::250])

# 4 更新图像
def update(i):
    # 更新折线图数据
    start = 0
    end = i + 1
    # 更新上证综指折线图
    sh_000001_line.set_data(x[start:end], sh_000001[start:end])
     # 更新深圳成指折线图
    sz_399001_line.set_data(x[start:end], sz_399001[start:end])
     # 更新创业板指折线图
    sz_399006_line.set_data(x[start:end], sz_399006[start:end])
    
    return sh_000001_line, sz_399001_line,  sz_399006_line

# 5 创建动画对象
animation = FuncAnimation(fig, update, frames=x, interval=50, repeat=False)
animation.save('A股三大指数2010年11月11日至2020年11月11日十年累计涨幅对比.mp4', fps=20)

# 6 展示
plt.show()

做了个动画

成片-2020-11-13 06:39:29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值