使用pandas绘制股票均线,这里以5日均线和20日均线为例。
1. 首先导入pandas模块。
import pandas as pd
# 设置最大列数,避免只显示部分列
pd.set_option('display.max_columns', 1000)
# 设置最大行数,避免只显示部分行数据
pd.set_option('display.max_rows', 1000)
# 设置显示宽度
pd.set_option('display.width', 1000)
# 设置每列最大宽度,避免属性值或列名显示不全
pd.set_option('display.max_colwidth',1000)
from matplotlib import pyplot as plt
2. 读取数据。
df = pd.read_csv(r'C:\Users\飘逸\Desktop\600837.csv')
3. 计算5日和20日均线。
# 常量定义
MA5 = 'MA5'
MA20 = 'MA20'
# 计算均线
df[MA5] = df['Close'].rolling(5).mean()
df[MA20] = df['Close'].rolling(20).mean()
4. 绘图。为了方便观察,这里将均线图和实际走势分开,实际走势使用的是收盘价。
fig=plt.figure(1)
fig.set(alpha=0.2)
# 子图一:均线图
plt.subplot2grid((2,1),(0,0))
df[MA5].plot()
df[MA20].plot()
plt.title("MA5 and MA20")
plt.legend(("MA5", "MA20"), loc="lower left")
# 子图二:收盘价
plt.subplot2grid((2,1),(1,0))
df['Close'].plot()
plt.title("Close")
plt.legend(("Close",), loc="lower left")
plt.show()
绘图结果如下。上图:均线,下图:实际走势。