Python繪制K線圖之可視化神器pyecharts的使用
股市及期貨市bai場中的K線圖的du畫法包含四個(gè)zhi數(shù)據(jù),即開盤dao價(jià)、最高價(jià)、最低價(jià)zhuan、收盤價(jià),所有的shuk線都是圍繞這四個(gè)數(shù)據(jù)展開,反映大勢的狀況和價(jià)格信息。如果把每日的K線圖放在一張紙上,就能得到日K線圖,同樣也可畫出周K線圖、月K線圖。研究金融的小伙伴肯定比較熟悉這個(gè),那么我們看起來比較復(fù)雜的K線圖,又是這樣畫出來的,本文我們將一起探索K線圖的魅力與神奇之處吧!
K線圖
用處K線圖用處于股票分析,作為數(shù)據(jù)分析,以后的進(jìn)入大數(shù)據(jù)肯定是一個(gè)趨勢和熱潮,K線圖的專業(yè)知識,說實(shí)話肯定比較的復(fù)雜,這里就不做過多的展示了,有興趣的小伙伴去問問百度小哥哥喲!
K線圖系列模板最簡單的K線圖繪制第一個(gè)K線圖繪制,來看看需要哪些參數(shù)吧,數(shù)據(jù)集都有四個(gè)必要的喲!
import pyecharts.options as optsfrom pyecharts.charts import Candlestick x_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'))
大量的數(shù)據(jù)集的時(shí)候,我們不可以全部同時(shí)展示,我們可以縮放來進(jìn)行定向展示。
from pyecharts import options as optsfrom pyecharts.charts import Kline data = [ [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'))
我們知道一個(gè)數(shù)據(jù)節(jié)點(diǎn),但是我們不能在圖像里面一眼看出有哪些數(shù)據(jù)量超出了它的范圍,刻度標(biāo)簽就可以派上用場了。
from pyecharts import options as optsfrom pyecharts.charts import Kline data = [ [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'))
前面的是一個(gè)有縮放功能的圖例代碼,但是有時(shí)候我們不想要那么修改一下參數(shù)就可以了。
from pyecharts import options as optsfrom pyecharts.charts import Kline data = [ [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í)候縮放可以容納較多的數(shù)據(jù)量,但是還是不夠智能,可以利用這個(gè)
from pyecharts import options as optsfrom pyecharts.charts import Kline data = [ [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)惱火了。
到此這篇關(guān)于Python繪制K線圖之可視化神器pyecharts的使用的文章就介紹到這了,更多相關(guān)Python繪制K線圖內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. PHP正則表達(dá)式函數(shù)preg_replace用法實(shí)例分析2. 一個(gè) 2 年 Android 開發(fā)者的 18 條忠告3. vue使用moment如何將時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式4. js select支持手動(dòng)輸入功能實(shí)現(xiàn)代碼5. Android 實(shí)現(xiàn)徹底退出自己APP 并殺掉所有相關(guān)的進(jìn)程6. Android studio 解決logcat無過濾工具欄的操作7. 什么是Python變量作用域8. vue-drag-chart 拖動(dòng)/縮放圖表組件的實(shí)例代碼9. Spring的異常重試框架Spring Retry簡單配置操作10. Vue實(shí)現(xiàn)仿iPhone懸浮球的示例代碼
