中秋味的視覺化大屏 【以python pyecharts為工具】

專注的阿熊發表於2022-09-08

# 讀取資料

df = pd.read_csv(" 廣州酒家日線資料 .csv")

# 設定索引,將字串格式的日期轉化為時間序列的形式,這樣可以很大程度上方便我們索引

df.index = pd.to_datetime(df.Date)

# 提取收盤價

Close = df.Close

# 求取 5 日簡單移動平均數

Sma5 = pd.Series(0.0, index=Close.index)

for i in range(4, len(Close)):

     Sma5[i] = round(sum(Close[i-4:(i+1)])/5,2)

# 求取 10 日簡單移動平均數

Sma10 = pd.Series(0.0, index=Close.index)

for i in range(9, len(Close)):

     Sma10[i] = 跟單網gendan5.comround(sum(Close[i-9:(i+1)])/10,2)

# 繪製折線圖,即 5 日移動平均,和 10 日移動平均

line = (

     Line(init_opts=opts.InitOpts(width='1000px',

                                         height='800px',

                                         chart_id='1'

                                         )

     )

     .add_xaxis(df.Date['2022-8'].values.tolist())

     .add_yaxis(" 收盤價 ", Close['2022-8'].values.tolist())

     .add_yaxis(" 五日移動平均線 ", Sma5['2022-8'].values.tolist())

     .add_yaxis(" 十日移動平均線 ", Sma10['2022-8'].values.tolist())

     # 全域性配置項內容

     .set_global_opts(title_opts=opts.TitleOpts(title=" 廣州酒家 2022 8 月收盤資料折線圖 ", subtitle=" 5&10 MAV "),

                      yaxis_opts=opts.AxisOpts(min_='dataMin')

                      )

     .set_series_opts(

         linestyle_opts=opts.LineStyleOpts(

             width=8,

             opacity=1,)

)

)

# 繪製蠟燭圖

# 這裡需要把資料轉化為 [[],[],...,[]] 的形式 而且,一定要注意, pyecharts 要求的資料順序是:開 收 低 高。

data = [list(i) for i in df.loc['2022-8', ['Open', 'Close', 'Low', 'High']].values]

kline = (

     Kline(init_opts=opts.InitOpts(width='1000px',

                                     height='800px',

                                     chart_id='2',

                                     page_title=" 廣州酒家 "))

     .add_xaxis(df.Date['2022-8'].values.tolist())

     .add_yaxis(" 廣州酒家 ", 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=" 廣州酒家蠟燭圖 "),

     )

)

# 順序多圖

page = Page(layout=Page.DraggablePageLayout)

page.add(

     line,

     kline

)

page.render('render.html')


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2913945/,如需轉載,請註明出處,否則將追究法律責任。

相關文章