纵有疾风起
人生不言弃

用Python绘制K线图一眼看清股市走向

前几天美股熔断,据悉这次熔断是自美股有熔断机制30年来第二次,成了头条新闻。对股票一窍不通的我也在此情此景进行了一波学习,股市的变化瞬息万千,有一种图可以用来清晰地反应一段时间内股市的变化情况,它就是K线图。

今天我们用Python基于两种不同的方式来绘制K线图,它们都是Python可视化的好帮手——Matplotlib、Pyecharts。

K线图这种图表源处于日本德川幕府时代,被当时日本米市的商人用来记录米市的行情与价格波动,后因其细腻独到的标画方式而被引入到股市及期货市场。目前,这种图表分析法在我国以至整个东南亚地区均尤为流行。由于用这种方法绘制出来的图表形状颇似一根根蜡烛,加上这些蜡烛有黑白之分,因而也叫阴阳线图表。

用Python绘制K线图一眼看清股市走向插图
image

K线图由周期内的开盘价、最高价、最低价以及收盘价绘制而成。首先选择该日的最高价和最低价,垂直连线,接着将改日的开盘价和收盘价连成一个长方体。如果该日的开盘价高于收盘价,以绿色来表示(跌了),反之以红色来表示(涨了)。这便是K线图绘制的原理,而Matplotlib、Pyecharts都已经给我们写好了绘制K线图的方法,我们仅需调用这些方法。

生成数据

这边我为了方便绘图根据这些数据之间简单的逻辑关系,随机生成了一个月的股市数据,数据顺序具体为日期,开盘价,最高价,最低价,收盘价。

start="2020-1-1"data=[]for i in range(31):        random_data=[random.randint(2000,2500) for _ in range(4)]    sorted_data=sorted(random_data)    day=date2num(datetime.datetime.strptime(start,'%Y-%m-%d'))    print(day)    if i==0:        one=(day,sorted_data[1],sorted_data[3],sorted_data[0],sorted_data[2]) if random.random()>0.5 else (day,sorted_data[2],sorted_data[3],sorted_data[0],sorted_data[1])           else:        one=(day+i,sorted_data[1],sorted_data[3],sorted_data[0],sorted_data[2]) if random.random()>0.5 else (day+i,sorted_data[2],sorted_data[3],sorted_data[0],sorted_data[1])    data.append(one)

Matplotlib绘制

用Python绘制K线图一眼看清股市走向插图1
image
from matplotlib import pyplot as pltfrom mpl_finance import candlestick_ohlcfig,ax=plt.subplots(facecolor="white",figsize=(12,8))fig.subplots_adjust(bottom=0.1)ax.xaxis_date()plt.xticks(rotation=30)plt.title('K-line')plt.xlabel('time')plt.ylabel('price')candlestick_ohlc(ax,data,width=0.5,colorup='r',colordown='green') plt.grid(True)

Pyecharts绘制

用Python绘制K线图一眼看清股市走向插图2
image
c=(        Kline()        .add_xaxis(["2017/7/{}".format(i + 1) for i in range(31)])        .add_yaxis("kline",                    data,                   itemstyle_opts=opts.ItemStyleOpts(                   color="#ec0000",                   color0="#00da3c",                   border_color="#8A0000",                   border_color0="#008F28",            )        )        .set_global_opts(            xaxis_opts=opts.AxisOpts(is_scale=True),            yaxis_opts=opts.AxisOpts(                is_scale=True,                splitarea_opts=opts.SplitAreaOpts(                    is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)                ),            ),            title_opts=opts.TitleOpts(title="K-line"),        ))c.render("k-line.html")复制代

另外,我们还可以设置伸缩坐标轴,便于放大缩小观察k线图。

用Python绘制K线图一眼看清股市走向插图3
image

点击了解更多获取PythonWeb开发,数据分析,爬虫等学习知识,
点击了解

文章转载于:https://www.jianshu.com/p/7293ee73d0e9

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » 用Python绘制K线图一眼看清股市走向
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录