使用Python绘制股票价格和移动平均的图表

移动平均(Moving Average,简称MA)是一种统计分析方法,通过计算一系列数据点的平均值,来平滑数据的波动。它可以帮助我们更清晰地看到数据的长期趋势,而不被短期的剧烈变化所干扰。
假设我们有一组股票价格数据:[100, 105, 102, 110, 108, 115]。为了计算3天的移动平均,我们需要对每3个连续的价格进行平均。
(1)第一天的移动平均:平均(100, 105, 102) = (100 + 105 + 102) / 3 = 102.33
(2)第二天的移动平均:平均(105, 102, 110) = (105 + 102 + 110) / 3 = 105.67
(3)第三天的移动平均:平均(102, 110, 108) = (102 + 110 + 108) / 3 = 106.67
(4)第四天的移动平均:平均(110, 108, 115) = (110 + 108 + 115) / 3 = 111
让我们使用Python绘制股票价格和移动平均的图表,来更直观地理解这种技术的应用。Python代码如下:

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager

#设置全局字体(需要是中文字体)
plt.rcParams['font.sans-serif']=['QingYuan'] 


# 创建股票价格数据
data = {
    '日期': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05', '2023-01-06'],
    '收盘价': [100, 105, 102, 110, 108, 115]
}
df = pd.DataFrame(data)

# 将日期列转换为日期类型
df['日期'] = pd.to_datetime(df['日期'])

# 计算3天的移动平均
df['移动平均'] = df['收盘价'].rolling(window=3).mean()

# 设置图表大小
plt.figure(figsize=(10, 6))

# 绘制股票价格
plt.plot(df['日期'], df['收盘价'], marker='o', linestyle='-', color='b', label='收盘价')

# 绘制移动平均
plt.plot(df['日期'], df['移动平均'], marker='x', linestyle='-', color='r', label='3天移动平均')

# 添加标题和标签
plt.title('股票价格和3天移动平均')
plt.xlabel('日期')
plt.ylabel('价格')

# 旋转日期标签
plt.xticks(rotation=45)

# 添加图例
plt.legend()

# 添加网格线
plt.grid()

# 显示图表
plt.show()

运行上述代码,输出可视化折线图,如图
在这里插入图片描述
在这个示例中,上面的线代表了每日的股票价格,下面的线代表了3天的移动平均值。通过对比两条线,我们可以看到,移动平均线更加平滑,消除了短期的波动,突出显示了价格的长期趋势。

小贴士:通过添加移动平均线,我们可以更清晰地看到股票价格的长期趋势。这种方法不仅适用于金融数据,也可以应用于其他类型的时序数据,比如气温变化、销售数据等。

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据张老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值