【Python】全文3000字,Pyecharts制作可视化大屏全流程! (附代码分享)
就在上一篇的文章當(dāng)中
干貨分享 | 用Pyecharts繪制20鐘不同風(fēng)格的炫酷交互式圖表,建議收藏
有粉絲提到說是不是可以寫一篇用Pyecharts模塊做可視化大屏的相關(guān)教程,小編立馬就答應(yīng)了他的請求。那么今天我們就來說說如何用Pyecharts模塊來制作炫酷的可視化大屏,最后的效果如下
步驟如下:
- 分別使用Pyecharts制作各類圖表,包括柱狀圖、地圖、餅圖等等 
- 使用Pyecharts當(dāng)中的組合圖表功能,將所有圖片拼接在一張html文件中進行展示 
數(shù)據(jù)的來源
這次我們使用的數(shù)據(jù)是虛構(gòu)的某超市2021年第一季度的訂單數(shù)據(jù),總共是有1000條,
df.info()output
<class?'pandas.core.frame.DataFrame'> RangeIndex:?1000?entries,?0?to?999 Data?columns?(total?17?columns):#???Column??Non-Null?Count??Dtype????????? ---??------??--------------??-----?????????0???訂單編號????1000?non-null???object????????1???分支??????1000?non-null???object????????2???省份??????1000?non-null???object????????3???顧客類型????1000?non-null???object????????4???性別??????1000?non-null???object????????5???商品類型????1000?non-null???object????????6???單價??????1000?non-null???float64???????7???數(shù)量??????1000?non-null???int64?????????8???Tax?5%??1000?non-null???float64???????9???總價??????1000?non-null???float64???????10??日期??????1000?non-null???datetime64[ns].......?? dtypes:?datetime64[ns](1),?float64(7),?int64(1),?object(8) memory?usage:?132.9+?KB其中顧客的類型有普通顧客與會員,性別有男性與女性,剩下的還有包括商品類型、購買時間、支付方式、各個商品的毛利率等數(shù)據(jù),
數(shù)據(jù)可視化
接下來我們開始各個圖表的繪制,我們先來看餅圖的繪制,代碼并不復(fù)雜,首先我們對“商品類型”這一列的數(shù)據(jù)進行統(tǒng)計
products_type_index?=?df["商品類型"].value_counts().index.tolist() products_type_values?=?df["商品類型"].value_counts().values.tolist()然后再調(diào)用Pyecharts()模塊中的Pie()實例進行圖表的繪制
def?pie_chart_2():c?=?(Pie(init_opts=opts.InitOpts(chart_id=4,?bg_color='#1C1C1C',theme=ThemeType.INFOGRAPHIC)).add("",?[list(z)?for?z?in?zip(products_type_index,products_type_values)]).set_global_opts(title_opts=opts.TitleOpts(title="商品類型分布圖",title_textstyle_opts=opts.TextStyleOpts(font_size=25,?color='#FFFFFF')),legend_opts=opts.LegendOpts(orient="vertical",pos_left="5%",pos_top="10%")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:?{c}")))return?cif?__name__?==?"__main__":map?=?map_chart()map.render("4.html")output
另外,我們也看到了單張圖片當(dāng)中有兩張餅圖的情況,這是使用了Pyecharts()模塊當(dāng)中的Grid()實例,將若干張繪制完成的圖表遵從一定的順序來進行組合
grid?=?(Grid(init_opts=opts.InitOpts(width='1000px',?height='600px',chart_id=3,?bg_color='#1C1C1C')).add(c_1,?grid_opts=opts.GridOpts(pos_left="60%")).add(c_2,?grid_opts=opts.GridOpts(pos_right="50%")))地圖
同樣地,我們將不同省份的數(shù)據(jù)給篩選出來之后,然后進行圖表的繪制
city_index?=?df["省份"].value_counts().index.tolist() city_values?=?df["省份"].value_counts().values.tolist()地圖的繪制用的是Pyecharts模塊當(dāng)中的Map()實例,可以看到顧客幾乎都分布在北京、浙江以及上海這幾個地方
def?map_chart():c?=?(Map(init_opts=opts.InitOpts(chart_id=2,bg_color='#1C1C1C')).add("商家A",?[list(z)?for?z?in?zip(city_index,city_values)],?"china").set_global_opts(title_opts=opts.TitleOpts(title="顧客在全國的分布圖",title_textstyle_opts=opts.TextStyleOpts(font_size=25,color='#FFFFFF')),visualmap_opts=opts.VisualMapOpts(max_=250),))return?cif?__name__?==?"__main__":map?=?map_chart()map.render("2.html")output
直方圖
我們針對的是購買時間,看一下哪些購買時間段的人會比較多
hour_index?=?df["小時"].value_counts().index.tolist() hour_index_str?=?[str(hour_ind)?+?"時"?for?hour_ind?in?hour_index] hour_values?=?df["小時"].value_counts().values.tolist()調(diào)用Bar()實例進行繪制圖表
def?bar_chart():c?=?(Bar(init_opts=opts.InitOpts(chart_id=5,?bg_color='#1C1C1C',theme=ThemeType.CHALK)).add_xaxis(hour_index_str).add_yaxis("商家A",?hour_values).set_global_opts(title_opts=opts.TitleOpts(title="購物的時間分布",subtitle="購物時間",title_textstyle_opts=opts.TextStyleOpts(font_size=25,?color='#FFFFFF'))))return?cif?__name__?==?"__main__":map?=?map_chart()map.render("5.html")output
Pyecharts組合圖表
將繪制出來的若干份圖表組合到一塊兒,總共有這幾種方式
- Grid: 并行/垂直放置多張圖 
- Page: 順序多圖 
- Tab: 多個頁面多圖 
- Timeline: 時間軸循環(huán)輪播多圖 
我們使用的是Page()示例來順序展示多張圖表,先實例化該對象
page?=?Page(layout=Page.DraggablePageLayout,?page_title="基于Pyecharts的銷售數(shù)據(jù)大屏")之所以用DraggablePageLayout屬性是為了調(diào)整成我們所想要的布局,然后將我們所繪制的圖表一一添加
page.add(title(),map_chart(),pie_chart(),pie_chart_2(),bar_chart(), )page.render('test_2.html')最后生成一個test_2.html的文件,然后我們將布局調(diào)整成我們想要的結(jié)果
對圖片布局完成之后,要記得點擊左上角的save config按鈕對布局文件進行保存。之后本地會生成一個chart_config.json文件,然后運行下面的代碼
打開重新生成的可視化大屏.html,便是新的內(nèi)容
代碼下載
公眾號“關(guān)于數(shù)據(jù)分析與可視化”后臺回復(fù)“大屏”,即可獲取全部代碼!,另外小編也寫了其他的幾篇Pyecharts文章來幫助各位讀者朋友加深對該模塊的理解,大家有興趣可以去閱讀一下
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載黃海廣老師《機器學(xué)習(xí)課程》視頻課黃海廣老師《機器學(xué)習(xí)課程》711頁完整版課件本站qq群955171419,加入微信群請掃碼:
總結(jié)
以上是生活随笔為你收集整理的【Python】全文3000字,Pyecharts制作可视化大屏全流程! (附代码分享)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 安卓端/iOS端如何播放4K分辨率的RT
- 下一篇: PP视频如何关闭下载完成通知我
