0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Pyecharts制作可視化大屏詳解

Linux愛好者 ? 來源:快學(xué)Python ? 作者:朱小五 ? 2021-10-26 09:42 ? 次閱讀

前兩天發(fā)了一篇《用Python制作可視化大屏,特簡單!》,留言區(qū)非?;鸨?,發(fā)現(xiàn)大家都對(duì)可視化部分非常感興趣。

而恰好大屏可視化這一部分又沒太細(xì)講,今天就詳細(xì)講一下Pyecharts制作可視化大屏。

注意,本文由于篇幅問題不會(huì)放置全部代碼,會(huì)在文末提供全部代碼的下載

承接上文《用Python制作可視化大屏,特簡單!》,不再贅述數(shù)據(jù)爬取和數(shù)據(jù)預(yù)處理。

ECharts是由百度開源的基于JS的商業(yè)級(jí)數(shù)據(jù)圖表庫,有很多現(xiàn)成的圖表類型和實(shí)例,而Pyecharts則是為了方便我們使用Python實(shí)現(xiàn)ECharts的繪圖。使用Pyecharts制作可視化大屏,可以分為兩步:

1、使用分別Pyecharts分別制作各類圖形;

2、使用Pyecharts中的組合圖表功能,將所有圖片拼接在一張html文件中進(jìn)行展示。

小五認(rèn)為影響大屏美觀最重要的兩個(gè)因素就是:配色和布局!在本文中,會(huì)特意強(qiáng)調(diào)這兩點(diǎn)。

Pyecharts可視化本文縮減了圖表,只選用2020東京奧運(yùn)會(huì)各國金牌分布圖、2020東京奧運(yùn)會(huì)獎(jiǎng)牌榜詳情、2020東京奧運(yùn)會(huì)中國各項(xiàng)目獲獎(jiǎng)詳情。

這類圖表都很簡單,參照官方文檔直接復(fù)制示例就可以學(xué)習(xí)。圖表配色都使用的Pyecharts默認(rèn)顏色,大家實(shí)際使用時(shí)盡量形成自己的風(fēng)格。

Map世界地圖Pyecharts繪制世界地圖時(shí),名稱必須是英文。所以我們?cè)谇拔闹幸肓藝颐Q中英文對(duì)照表,左連接形成了df4:

df4

單獨(dú)提取英文名稱和獎(jiǎng)牌總數(shù)兩列數(shù)據(jù),用來可視化。

data_list=[[i,j] for i,j in zip(df4[‘英文名稱’],df4[‘獎(jiǎng)牌總數(shù)’])]

data_list[:5]

803866ee-3583-11ec-82a8-dac502259ad0.png

數(shù)據(jù)準(zhǔn)備好了,開始利用pyecharts繪制世界地圖。

from pyecharts import options as opts

from pyecharts.charts import Map

c = (

Map()

.add(“”, data_list, “world”,

is_map_symbol_show=False,

.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

.set_global_opts(

title_opts=opts.TitleOpts(title=“2020東京奧運(yùn)會(huì)各國金牌分布圖”),

visualmap_opts=opts.VisualMapOpts(max_=100)

c.render_notebook()

非常簡單

同理,依次繪制其他兩類圖形。

柱狀圖、餅圖柱狀圖(Bar)

from pyecharts import options as opts

from pyecharts.charts import Bar

c = (

Bar()

.add_xaxis(df4[‘名稱’].head(25).tolist())

.add_yaxis(“金牌”, df4[‘金牌’].head(25).tolist(), stack=“stack1”)

.add_yaxis(“銀牌”, df4[‘銀牌’].head(25).tolist(), stack=“stack1”)

.add_yaxis(“銅牌”, df4[‘銅牌’].head(25).tolist(), stack=“stack1”)

.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position=“inside”, font_size=12, color=‘#FFFFFF’))

.set_global_opts(title_opts=opts.TitleOpts(title=“2020東京奧運(yùn)會(huì)獎(jiǎng)牌榜詳情”),

xaxis_opts=opts.AxisOpts(type_=‘category’,

axislabel_opts=opts.LabelOpts(

rotate=45),

)))

c.render_notebook()

2020東京奧運(yùn)會(huì)獎(jiǎng)牌榜詳情

餅圖(Pie)

from pyecharts import options as opts

from pyecharts.charts import Pie

c = (

Pie()

.add(“”, [[‘跳水’, 12], [‘射擊’, 11], [‘舉重’, 8], [‘競技體操’, 8], [‘乒乓球’, 7], [‘游泳’, 6], [‘羽毛球’, 6], [‘田徑’, 5], [‘靜水皮劃艇’, 3], [‘蹦床體操’, 3], [‘自由式摔跤’, 3], [‘賽艇’, 3], [‘空手道’, 2], [‘拳擊’, 2], [‘帆船’, 2], [‘花樣游泳’, 2], [‘跆拳道’, 1], [‘場地自行車賽’, 1], [‘古典式摔跤’, 1], [‘擊劍’, 1], [‘三人籃球’, 1]],

center=[“50%”, “60%”],)

.set_series_opts(label_opts=opts.LabelOpts(formatter=“: {c}”))

c.render_notebook()

2020東京奧運(yùn)會(huì)中國各項(xiàng)目獲獎(jiǎng)詳情

這樣需要用到的三張圖表就繪制好了。

Pyecharts組合圖表Pyecharts進(jìn)行可視化大屏第二步就是組合圖表,大致可分為四類:

Grid:并行多圖

Page:順序多圖

Tab:選項(xiàng)卡多圖

Timeline:時(shí)間線輪播多圖

官方文檔:https://pyecharts.org/#/zh-cn/composite_charts

這里用Page(順序多圖)居多,在組合圖表之前,還要先把前面的圖表繪制代碼改為函數(shù)。

def map_world() -》 Map:

c = (

Map(init_opts=opts.InitOpts(chart_id=2, bg_color=‘#ADD8E6’))

.add(“”, data_list, “world”,

is_map_symbol_show=False,

.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

.set_global_opts(

title_opts=opts.TitleOpts(title=“2020東京奧運(yùn)會(huì)各國金牌分布圖”),

visualmap_opts=opts.VisualMapOpts(max_=100)

return c

順便還在其中增加了背景顏色bg_color、圖表IDchart_id,后者用于多圖表時(shí)定位區(qū)分。背景顏色的話,我選擇了淡藍(lán)色#ADD8E6。后續(xù)圖片的布局是根據(jù)圖表ID的對(duì)應(yīng)關(guān)系進(jìn)行布局,所以每張圖都要分別設(shè)置其id。

接著使用page = Page(layout= Page.DraggablePageLayout)模式對(duì)圖片進(jìn)行展示,這一步是為了調(diào)整布局。

page = Page(layout=Page.DraggablePageLayout, page_title=“2020東京奧運(yùn)會(huì)獎(jiǎng)牌榜”)

# 在頁面中添加圖表

page.add(

title(),

map_world(),

bar_medals(),

pie_china(),)

page.render(‘test.html’)

調(diào)用繪制函數(shù)后生成一個(gè) test.html 文件。

打開后可以其中的圖片進(jìn)行拖拽,來實(shí)現(xiàn)自定義布局。

對(duì)圖片布局完畢后,要記得點(diǎn)擊左上角“save config”對(duì)布局文件進(jìn)行保存。

點(diǎn)擊后,本地會(huì)生成一個(gè)chart_config.json的文件,這其中包含了每個(gè)圖表ID對(duì)應(yīng)的布局位置。

最后,調(diào)用保存好的布局文件,重新生成html。

運(yùn)行下面這行代碼。

page.save_resize_html(‘test.html’, cfg_file=‘chart_config.json’, dest=‘奧運(yùn).html’)

其中test.html 為生成的所有圖表的文件、chart_config.json 為下載的布局文件、奧運(yùn).html 為布局好的的儀表盤文件、打開儀表奧運(yùn).html:

這樣就實(shí)現(xiàn)了一次數(shù)據(jù)可視化——大屏展示。

但還有還有很多不足之處,比如若圖表配色沒有特殊去做調(diào)整。

整張大屏只是一個(gè)靜態(tài)的展示,而非具有商業(yè)場景的數(shù)據(jù)儀表盤。

真正的數(shù)據(jù)大屏往往更喜歡用BI軟件生成,能夠?qū)崿F(xiàn)圖、表、切片器之間交叉篩選,希望以后有機(jī)會(huì)能用Python使用制作出來。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4790

    瀏覽量

    68653
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84727

原文標(biāo)題:Python 制作可視化大屏全流程!

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是大數(shù)據(jù)可視化?特點(diǎn)有哪些?

    數(shù)據(jù)可視化是指通過大屏幕展示大量數(shù)據(jù)和信息,以直觀、可視化的方式幫助用戶理解和分析數(shù)據(jù)。這種展示方式通常用于展示復(fù)雜的數(shù)據(jù)集、實(shí)時(shí)監(jiān)控系統(tǒng)、企業(yè)管理儀表盤等。以下是關(guān)于 大數(shù)據(jù)
    的頭像 發(fā)表于 12-16 16:59 ?198次閱讀

    可視化在水務(wù)領(lǐng)域都有哪些應(yīng)用場景?帶你一次看透!

    隨著科技的發(fā)展,大數(shù)據(jù)和可視化技術(shù)逐漸成為水務(wù)領(lǐng)域的有力助手。博達(dá)智聯(lián)可視化設(shè)計(jì)平臺(tái)以其高度自定義、功能強(qiáng)大、多種圖表的特點(diǎn),為水務(wù)行業(yè)提供了全新的解決方案。本文將詳細(xì)探討該平臺(tái)在水務(wù)領(lǐng)域的具體
    的頭像 發(fā)表于 12-13 17:09 ?217次閱讀
    <b class='flag-5'>可視化</b>大<b class='flag-5'>屏</b>在水務(wù)領(lǐng)域都有哪些應(yīng)用場景?帶你一次看透!

    如何找到適合的大數(shù)據(jù)可視化系統(tǒng)

    選擇合適的大數(shù)據(jù)可視化系統(tǒng)是企業(yè)或組織在數(shù)字轉(zhuǎn)型過程中至關(guān)重要的一步。一個(gè)優(yōu)秀的大數(shù)據(jù)可視化系統(tǒng)能夠?qū)崟r(shí)呈現(xiàn)關(guān)鍵業(yè)務(wù)數(shù)據(jù),提升決策效率
    的頭像 發(fā)表于 12-13 15:47 ?131次閱讀

    智慧能源可視化監(jiān)管平臺(tái)——助力可視化能源數(shù)據(jù)管理

    博達(dá)可視化設(shè)計(jì)平臺(tái)在智慧能源領(lǐng)域的價(jià)值體現(xiàn)在實(shí)時(shí)監(jiān)控、數(shù)據(jù)可視化、決策支持和效率提升等方面。借助該平臺(tái),企業(yè)可以輕松搭建智慧能源類可視化
    的頭像 發(fā)表于 11-29 10:00 ?323次閱讀
    智慧能源<b class='flag-5'>可視化</b>監(jiān)管平臺(tái)——助力<b class='flag-5'>可視化</b>能源數(shù)據(jù)管理

    可視化數(shù)據(jù)大制作流程

    制作可視化數(shù)據(jù)大是一項(xiàng)涵蓋數(shù)據(jù)分析、設(shè)計(jì)和技術(shù)實(shí)現(xiàn)的復(fù)雜任務(wù)。從數(shù)據(jù)處理到展示呈現(xiàn),每個(gè)步驟都至關(guān)重要。下面將詳細(xì)介紹可視化數(shù)據(jù)大
    的頭像 發(fā)表于 07-24 13:57 ?291次閱讀

    數(shù)據(jù)可視化 開源

    在當(dāng)今信息爆炸的時(shí)代,數(shù)據(jù)已經(jīng)成為各個(gè)行業(yè)決策制定和業(yè)務(wù)發(fā)展的關(guān)鍵。為了更直觀、準(zhǔn)確地理解和利用海量數(shù)據(jù), 大數(shù)據(jù)可視化 成為一種強(qiáng)大的工具。通過將數(shù)據(jù)以圖表、圖形等形式展示在大屏幕上,不僅
    的頭像 發(fā)表于 06-27 16:06 ?417次閱讀
    大<b class='flag-5'>屏</b>數(shù)據(jù)<b class='flag-5'>可視化</b> 開源

    如何實(shí)現(xiàn)園區(qū)大可視化?

    如何實(shí)現(xiàn)園區(qū)大可視化? 1.建立孿生模型:首先需要建立園區(qū)的孿生模型,即一個(gè)數(shù)字的虛擬模型,反映了園區(qū)的實(shí)際情況、結(jié)構(gòu)、設(shè)備、人員等信息。這個(gè)模型可以通過傳感器、監(jiān)控設(shè)備、GIS 數(shù)據(jù)等實(shí)時(shí)獲取和更新,確保與實(shí)際情況保持
    的頭像 發(fā)表于 06-19 15:39 ?429次閱讀
    如何實(shí)現(xiàn)園區(qū)大<b class='flag-5'>屏</b><b class='flag-5'>可視化</b>?

    物聯(lián)網(wǎng)時(shí)代,為什么需要可視化數(shù)據(jù)大

    在互聯(lián)網(wǎng)和大數(shù)據(jù)時(shí)代,工業(yè)領(lǐng)域日益增長的數(shù)據(jù)量越來越離不開數(shù)據(jù)分析的支持,可視化數(shù)據(jù)大便是集中數(shù)據(jù)并展示出來的重要平臺(tái),能夠?qū)⒏鱾€(gè)工廠、車間、設(shè)備的數(shù)據(jù)集中并實(shí)現(xiàn)可視化分析,讓管理層更好的了解生產(chǎn)
    的頭像 發(fā)表于 06-18 13:53 ?391次閱讀
    物聯(lián)網(wǎng)時(shí)代,為什么需要<b class='flag-5'>可視化</b>數(shù)據(jù)大<b class='flag-5'>屏</b>

    智慧大是如何實(shí)現(xiàn)數(shù)據(jù)可視化的?

    智慧大,作為數(shù)據(jù)可視化的重要載體,已在城市管理、交通監(jiān)控、商業(yè)運(yùn)營等領(lǐng)域廣泛應(yīng)用。本文旨在闡述智慧大實(shí)現(xiàn)數(shù)據(jù)可視化的關(guān)鍵技術(shù)和方法,包括數(shù)據(jù)源管理、數(shù)據(jù)處理、視覺編碼、用戶界面與交
    的頭像 發(fā)表于 06-04 15:02 ?618次閱讀
    智慧大<b class='flag-5'>屏</b>是如何實(shí)現(xiàn)數(shù)據(jù)<b class='flag-5'>可視化</b>的?

    數(shù)據(jù)可視化的作用和意義

    數(shù)據(jù)可視化是指利用大屏幕設(shè)備展示數(shù)據(jù)信息,通過圖表、圖像、動(dòng)畫等視覺手段將數(shù)據(jù)呈現(xiàn)出來,以便用戶能夠直觀、清晰地理解數(shù)據(jù)背后的含義和關(guān)聯(lián)。在信息化時(shí)代,數(shù)據(jù)已經(jīng)成為企業(yè)決策和運(yùn)營的重要依托,而
    的頭像 發(fā)表于 06-03 17:56 ?682次閱讀

    三維可視化數(shù)據(jù)大的設(shè)計(jì)原理和技巧

    三維可視化數(shù)據(jù)大設(shè)計(jì)面向交通、園區(qū)、城市、建筑、應(yīng)急等領(lǐng)域的客戶,以孿生可視能力賦能,提供行業(yè)解決方案。雙渲染引擎,1:1還原真實(shí)世界,在模型運(yùn)行流暢的基礎(chǔ)上提供極佳的視覺效果。今天,古河云
    的頭像 發(fā)表于 05-30 17:09 ?555次閱讀

    數(shù)據(jù)可視化是什么?運(yùn)用了什么技術(shù)

    數(shù)據(jù)可視化 是一種利用大屏幕設(shè)備展示數(shù)據(jù)可視化結(jié)果的技術(shù),旨在以更生動(dòng)、直觀的方式呈現(xiàn)數(shù)據(jù)信息。這種數(shù)據(jù)展示方式廣泛應(yīng)用于各種場景,包括會(huì)議、展覽、監(jiān)控中心等,旨在幫助用戶更快速、準(zhǔn)確地理
    的頭像 發(fā)表于 05-24 15:35 ?869次閱讀

    三維可視化是怎么做的?特點(diǎn)有哪些?

    的應(yīng)用場景中占據(jù)著重要部分,很多業(yè)務(wù)都需要以三維可視化的方式呈現(xiàn)與交互,它能夠幫助用戶更直觀地理解復(fù)雜的數(shù)據(jù)和信息。以下是關(guān)于三維可視化的三維地圖的制作過程以及功能特點(diǎn): 三維地圖制作
    的頭像 發(fā)表于 04-28 15:12 ?500次閱讀
    三維<b class='flag-5'>可視化</b>是怎么做的?特點(diǎn)有哪些?

    FUXA基于Web的過程可視化軟件案例

    FUXA——基于Web的過程可視化軟件
    發(fā)表于 04-24 18:32 ?2次下載

    物聯(lián)網(wǎng)可視化監(jiān)控大如何實(shí)現(xiàn)?有什么功能?

    在物聯(lián)網(wǎng)飛速發(fā)展的時(shí)代,可視化監(jiān)控大成為了眾多企業(yè)和機(jī)構(gòu)實(shí)現(xiàn)智能管理和監(jiān)控的重要工具。它將各種各樣設(shè)備的運(yùn)行狀態(tài)和數(shù)據(jù)以圖形、圖表、動(dòng)畫等形式展示在大或其他移動(dòng)設(shè)備上,使得用戶能
    的頭像 發(fā)表于 04-11 09:25 ?889次閱讀