python输出股票K线图

博主: Simon Lin 创建于: May 16, 2020 更新于: May 16, 2020
分类: finance
标签: finance python

python输出股票K线图

  这篇算是一个小的技术点记录。k线图的绘制还是比较的复杂的,在这里只对于用python的最新的mplfinance使用的一个最简单版本记录。baidu可以搜到一些其他方法,matplotlib.finance,mpl_finance,但在2020年,由于包的更新似乎用这种最新的方法才可行。

这里请先安装mplfinance,直接用pip哦。图形的显示还是使用matplotlib.pyplot


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import mplfinance as mpf
import datetime
from matplotlib.pylab import date2num
# import trade_data

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 直接从数据获取方法里获取数据
# sc='600036'
# start_date='2020-05-01'
# end_date='2020-05-15'
# df=trade_data.get_daily_price(security=sc,start_date=start_date,end_date=end_date)

#以下是样例数据
# data = {'2020-05-06':[34.53,34.63,34.78,34.18],
# '2020-05-07':[34.60,34.45,34.62,34.05],
# '2020-05-08':[34.77,34.97,35.18,34.55],
# '2020-05-11':[34.98,34.96,35.48,34.88],
# '2020-05-12':[34.99,34.59,35.04,34.44]}
# 直接拼装一个样例数据出来,也可以通过其他手段获取
data = [[34.53,34.63,34.78,34.18],
[34.60,34.45,34.62,34.05],
[34.77,34.97,35.18,34.55],
[34.98,34.96,35.48,34.88],
[34.99,34.59,35.04,34.44]]
index = pd.Series(['2020-05-06','2020-05-07','2020-05-08','2020-05-11','2020-05-12'])
index.name = 'date'
df = pd.DataFrame(data=data, columns=['open','close','high','low'],index=index)
print(df.head(5))

# 根据绘制要求,列名必须是这些,且首字母大写,在这里修改对应的列名
df_simple = df[['open','close','high','low']]
df_simple = df_simple.astype('float64')
df_simple['Date'] = pd.to_datetime(df_simple.index)
df_simple.set_index('Date',inplace=True)
df_simple.rename(columns={'open':'Open','close':'Close','high':'High','low':'Low'},inplace=True)
print(df_simple.head(5))

mpf.plot(df_simple,type='candle')
plt.show()

废话不多说,直接看代码,核心就是字段名记得写对,首字母大写。后续附加功能直接去参考其他文档吧。最简单的加一个成交量的字段:volumes。如果要在图上叠加其他指标,要用add_plot。以后再研究。


打赏 支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者