如何用Python的pyecharts库绘制K线图
01
K線圖
?
一、概念
股市及期貨市場中的K線圖的畫法包含四個(gè)數(shù)據(jù),即開盤價(jià)、最高價(jià)、最低價(jià)、收盤價(jià),所有的K線都是圍繞這四個(gè)數(shù)據(jù)展開,反映大勢的狀況和價(jià)格信息。如果把每日的K線圖放在一張紙上,就能得到日K線圖,同樣也可畫出周K線圖、月K線圖。研究金融的小伙伴肯定比較熟悉這個(gè),那么我們看起來比較復(fù)雜的K線圖,又是這樣畫出來的,本文我們將一起探索K線圖的魅力與神奇之處吧!
?
二、用處
K線圖用處于股票分析,作為數(shù)據(jù)分析,以后的進(jìn)入大數(shù)據(jù)肯定是一個(gè)趨勢和熱潮,K線圖的專業(yè)知識,說實(shí)話肯定比較的復(fù)雜,這里就不做過多的展示了,有興趣的小伙伴去問問百度小哥哥喲!
02
K線圖系列模板
一、最簡單的K線圖繪制
第一個(gè)K線圖繪制,來看看需要哪些參數(shù)吧,數(shù)據(jù)集都有四個(gè)必要的喲!
import?pyecharts.options?as?opts from?pyecharts.charts?import?Candlestickx_data?=?["2017-10-24",?"2017-10-25",?"2017-10-26",?"2017-10-27"] y_data?=?[[20,?30,?10,?35],?[40,?35,?30,?55],?[33,?38,?33,?40],?[40,?40,?32,?42]](Candlestick(init_opts=opts.InitOpts(width="1200px",?height="600px")).add_xaxis(xaxis_data=x_data).add_yaxis(series_name="",?y_axis=y_data).set_series_opts().set_global_opts(yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True,?linestyle_opts=opts.LineStyleOpts(width=1)))).render("簡單K線圖.html") )二、K線圖鼠標(biāo)縮放
大量的數(shù)據(jù)集的時(shí)候,我們不可以全部同時(shí)展示,我們可以縮放來進(jìn)行定向展示。
from?pyecharts?import?options?as?opts from?pyecharts.charts?import?Klinedata?=?[[2320.26,?2320.26,?2287.3,?2362.94],[2300,?2291.3,?2288.26,?2308.38],[2295.35,?2346.5,?2295.35,?2345.92],[2347.22,?2358.98,?2337.35,?2363.8],[2360.75,?2382.48,?2347.89,?2383.76],[2383.43,?2385.42,?2371.23,?2391.82],[2377.41,?2419.02,?2369.57,?2421.15],[2425.92,?2428.15,?2417.58,?2440.38],[2411,?2433.13,?2403.3,?2437.42],[2432.68,?2334.48,?2427.7,?2441.73],[2430.69,?2418.53,?2394.22,?2433.89],[2416.62,?2432.4,?2414.4,?2443.03],[2441.91,?2421.56,?2418.43,?2444.8],[2420.26,?2382.91,?2373.53,?2427.07],[2383.49,?2397.18,?2370.61,?2397.94],[2378.82,?2325.95,?2309.17,?2378.82],[2322.94,?2314.16,?2308.76,?2330.88],[2320.62,?2325.82,?2315.01,?2338.78],[2313.74,?2293.34,?2289.89,?2340.71],[2297.77,?2313.22,?2292.03,?2324.63],[2322.32,?2365.59,?2308.92,?2366.16],[2364.54,?2359.51,?2330.86,?2369.65],[2332.08,?2273.4,?2259.25,?2333.54],[2274.81,?2326.31,?2270.1,?2328.14],[2333.61,?2347.18,?2321.6,?2351.44],[2340.44,?2324.29,?2304.27,?2352.02],[2326.42,?2318.61,?2314.59,?2333.67],[2314.68,?2310.59,?2296.58,?2320.96],[2309.16,?2286.6,?2264.83,?2333.29],[2282.17,?2263.97,?2253.25,?2286.33],[2255.77,?2270.28,?2253.31,?2276.22], ]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)),),datazoom_opts=[opts.DataZoomOpts(type_="inside")],title_opts=opts.TitleOpts(title="Kline-ItemStyle"),).render("K線圖鼠標(biāo)縮放.html") )三、有刻度標(biāo)簽的K線圖
我們知道一個(gè)數(shù)據(jù)節(jié)點(diǎn),但是我們不能在圖像里面一眼看出有哪些數(shù)據(jù)量超出了它的范圍,刻度標(biāo)簽就可以派上用場了。
from?pyecharts?import?options?as?opts from?pyecharts.charts?import?Klinedata?=?[[2320.26,?2320.26,?2287.3,?2362.94],[2300,?2291.3,?2288.26,?2308.38],[2295.35,?2346.5,?2295.35,?2345.92],[2347.22,?2358.98,?2337.35,?2363.8],[2360.75,?2382.48,?2347.89,?2383.76],[2383.43,?2385.42,?2371.23,?2391.82],[2377.41,?2419.02,?2369.57,?2421.15],[2425.92,?2428.15,?2417.58,?2440.38],[2411,?2433.13,?2403.3,?2437.42],[2432.68,?2334.48,?2427.7,?2441.73],[2430.69,?2418.53,?2394.22,?2433.89],[2416.62,?2432.4,?2414.4,?2443.03],[2441.91,?2421.56,?2418.43,?2444.8],[2420.26,?2382.91,?2373.53,?2427.07],[2383.49,?2397.18,?2370.61,?2397.94],[2378.82,?2325.95,?2309.17,?2378.82],[2322.94,?2314.16,?2308.76,?2330.88],[2320.62,?2325.82,?2315.01,?2338.78],[2313.74,?2293.34,?2289.89,?2340.71],[2297.77,?2313.22,?2292.03,?2324.63],[2322.32,?2365.59,?2308.92,?2366.16],[2364.54,?2359.51,?2330.86,?2369.65],[2332.08,?2273.4,?2259.25,?2333.54],[2274.81,?2326.31,?2270.1,?2328.14],[2333.61,?2347.18,?2321.6,?2351.44],[2340.44,?2324.29,?2304.27,?2352.02],[2326.42,?2318.61,?2314.59,?2333.67],[2314.68,?2310.59,?2296.58,?2320.96],[2309.16,?2286.6,?2264.83,?2333.29],[2282.17,?2263.97,?2253.25,?2286.33],[2255.77,?2270.28,?2253.31,?2276.22], ]c?=?(Kline().add_xaxis(["2017/7/{}".format(i?+?1)?for?i?in?range(31)]).add_yaxis("kline",data,markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="max",?value_dim="close")]),).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="標(biāo)題"),).render("刻度標(biāo)簽.html") )四、K線圖鼠標(biāo)無縮放
前面的是一個(gè)有縮放功能的圖例代碼,但是有時(shí)候我們不想要那么修改一下參數(shù)就可以了。
from?pyecharts?import?options?as?opts from?pyecharts.charts?import?Klinedata?=?[[2320.26,?2320.26,?2287.3,?2362.94],[2300,?2291.3,?2288.26,?2308.38],[2295.35,?2346.5,?2295.35,?2345.92],[2347.22,?2358.98,?2337.35,?2363.8],[2360.75,?2382.48,?2347.89,?2383.76],[2383.43,?2385.42,?2371.23,?2391.82],[2377.41,?2419.02,?2369.57,?2421.15],[2425.92,?2428.15,?2417.58,?2440.38],[2411,?2433.13,?2403.3,?2437.42],[2432.68,?2334.48,?2427.7,?2441.73],[2430.69,?2418.53,?2394.22,?2433.89],[2416.62,?2432.4,?2414.4,?2443.03],[2441.91,?2421.56,?2418.43,?2444.8],[2420.26,?2382.91,?2373.53,?2427.07],[2383.49,?2397.18,?2370.61,?2397.94],[2378.82,?2325.95,?2309.17,?2378.82],[2322.94,?2314.16,?2308.76,?2330.88],[2320.62,?2325.82,?2315.01,?2338.78],[2313.74,?2293.34,?2289.89,?2340.71],[2297.77,?2313.22,?2292.03,?2324.63],[2322.32,?2365.59,?2308.92,?2366.16],[2364.54,?2359.51,?2330.86,?2369.65],[2332.08,?2273.4,?2259.25,?2333.54],[2274.81,?2326.31,?2270.1,?2328.14],[2333.61,?2347.18,?2321.6,?2351.44],[2340.44,?2324.29,?2304.27,?2352.02],[2326.42,?2318.61,?2314.59,?2333.67],[2314.68,?2310.59,?2296.58,?2320.96],[2309.16,?2286.6,?2264.83,?2333.29],[2282.17,?2263.97,?2253.25,?2286.33],[2255.77,?2270.28,?2253.31,?2276.22], ]c?=?(Kline().add_xaxis(["2017/7/{}".format(i?+?1)?for?i?in?range(31)]).add_yaxis("kline",?data).set_global_opts(yaxis_opts=opts.AxisOpts(is_scale=True),xaxis_opts=opts.AxisOpts(is_scale=True),title_opts=opts.TitleOpts(title="Kline-基本示例"),).render("鼠標(biāo)無縮放.html") )五、大量數(shù)據(jù)K線圖繪制(X軸鼠標(biāo)可移動(dòng))
雖然有時(shí)候縮放可以容納較多的數(shù)據(jù)量,但是還是不夠智能,可以利用這個(gè):
from?pyecharts?import?options?as?opts from?pyecharts.charts?import?Klinedata?=?[[2320.26,?2320.26,?2287.3,?2362.94],[2300,?2291.3,?2288.26,?2308.38],[2295.35,?2346.5,?2295.35,?2345.92],[2347.22,?2358.98,?2337.35,?2363.8],[2360.75,?2382.48,?2347.89,?2383.76],[2383.43,?2385.42,?2371.23,?2391.82],[2377.41,?2419.02,?2369.57,?2421.15],[2425.92,?2428.15,?2417.58,?2440.38],[2411,?2433.13,?2403.3,?2437.42],[2432.68,?2334.48,?2427.7,?2441.73],[2430.69,?2418.53,?2394.22,?2433.89],[2416.62,?2432.4,?2414.4,?2443.03],[2441.91,?2421.56,?2418.43,?2444.8],[2420.26,?2382.91,?2373.53,?2427.07],[2383.49,?2397.18,?2370.61,?2397.94],[2378.82,?2325.95,?2309.17,?2378.82],[2322.94,?2314.16,?2308.76,?2330.88],[2320.62,?2325.82,?2315.01,?2338.78],[2313.74,?2293.34,?2289.89,?2340.71],[2297.77,?2313.22,?2292.03,?2324.63],[2322.32,?2365.59,?2308.92,?2366.16],[2364.54,?2359.51,?2330.86,?2369.65],[2332.08,?2273.4,?2259.25,?2333.54],[2274.81,?2326.31,?2270.1,?2328.14],[2333.61,?2347.18,?2321.6,?2351.44],[2340.44,?2324.29,?2304.27,?2352.02],[2326.42,?2318.61,?2314.59,?2333.67],[2314.68,?2310.59,?2296.58,?2320.96],[2309.16,?2286.6,?2264.83,?2333.29],[2282.17,?2263.97,?2253.25,?2286.33],[2255.77,?2270.28,?2253.31,?2276.22], ]c?=?(Kline().add_xaxis(["2017/7/{}".format(i?+?1)?for?i?in?range(31)]).add_yaxis("kline",?data).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)),),datazoom_opts=[opts.DataZoomOpts(pos_bottom="-2%")],title_opts=opts.TitleOpts(title="Kline-DataZoom-slider-Position"),).render("大量數(shù)據(jù)展示.html") )K線圖的繪制需要有專業(yè)的基本知識喲,不然可能有點(diǎn)惱火了。
-END-
點(diǎn)分享
點(diǎn)收藏
點(diǎn)點(diǎn)贊
點(diǎn)在
總結(jié)
以上是生活随笔為你收集整理的如何用Python的pyecharts库绘制K线图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9999 元,小米游戏电视 ES Pro
- 下一篇: 如何设置python程序定时执行?