如何用Python的pyecharts库绘制K线图
生活随笔
收集整理的這篇文章主要介紹了
如何用Python的pyecharts库绘制K线图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
01
K線圖
?
一、概念
股市及期貨市場中的K線圖的畫法包含四個數據,即開盤價、最高價、最低價、收盤價,所有的K線都是圍繞這四個數據展開,反映大勢的狀況和價格信息。如果把每日的K線圖放在一張紙上,就能得到日K線圖,同樣也可畫出周K線圖、月K線圖。研究金融的小伙伴肯定比較熟悉這個,那么我們看起來比較復雜的K線圖,又是這樣畫出來的,本文我們將一起探索K線圖的魅力與神奇之處吧!
?
二、用處
K線圖用處于股票分析,作為數據分析,以后的進入大數據肯定是一個趨勢和熱潮,K線圖的專業知識,說實話肯定比較的復雜,這里就不做過多的展示了,有興趣的小伙伴去問問百度小哥哥喲!
02
K線圖系列模板
一、最簡單的K線圖繪制
第一個K線圖繪制,來看看需要哪些參數吧,數據集都有四個必要的喲!
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線圖鼠標縮放
大量的數據集的時候,我們不可以全部同時展示,我們可以縮放來進行定向展示。
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線圖鼠標縮放.html") )三、有刻度標簽的K線圖
我們知道一個數據節點,但是我們不能在圖像里面一眼看出有哪些數據量超出了它的范圍,刻度標簽就可以派上用場了。
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="標題"),).render("刻度標簽.html") )四、K線圖鼠標無縮放
前面的是一個有縮放功能的圖例代碼,但是有時候我們不想要那么修改一下參數就可以了。
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("鼠標無縮放.html") )五、大量數據K線圖繪制(X軸鼠標可移動)
雖然有時候縮放可以容納較多的數據量,但是還是不夠智能,可以利用這個:
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("大量數據展示.html") )K線圖的繪制需要有專業的基本知識喲,不然可能有點惱火了。
-END-
點分享
點收藏
點點贊
點在
總結
以上是生活随笔為你收集整理的如何用Python的pyecharts库绘制K线图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9999 元,小米游戏电视 ES Pro
- 下一篇: 讲讲大厂面试必考的假设检验