日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【Python】Pyecharts 组合图形绘制实践

發(fā)布時(shí)間:2025/3/12 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】Pyecharts 组合图形绘制实践 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?來源:Python數(shù)據(jù)之道

作者:Peter

整理:Lemon

Pyecharts 組合圖形繪制實(shí)踐

大家好,之前跟大家分享了用 Pyecharts 繪制桑基圖和餅圖:

  • 炫酷!用Python制作漂亮的流動桑基圖

  • 驚嘆,Pyecharts繪制餅圖原來可以如此漂亮!

有同學(xué)提了一個(gè)問題,在 Pyecharts 中如何繪制多個(gè)圖形,今天我們來分享下組合圖的繪制。

在實(shí)際的工作需求中,我們經(jīng)常需要繪制多個(gè)甚至多種不同類型的圖形,有時(shí)候還需要將它們放在一個(gè)頁面中,達(dá)到一個(gè)可視化看板的效果。

在本文中將利用 pyecharts 來實(shí)現(xiàn)這個(gè)需求,同時(shí)滿足動態(tài)可視化的效果,再次感受這個(gè)可視化神器的強(qiáng)大之處,讓你真正愛上它。

01 環(huán)境

  • Python 3.7

  • Jupyter notebook

  • Pandas 1.1.3

  • pyecharts 1.7.1

  • pyecharts-jupyter-installer 0.0.3

這里提醒下:

pyecharts 的版本一定要保持一致,非常重要!

pyecharts 的版本一定要保持一致,非常重要!

pyecharts 的版本一定要保持一致,非常重要!

在安裝的時(shí)候可以直接指定版本號,防止出意外

02 單個(gè)圖形制作

在下面的文章部門我們先逐個(gè)繪制多種不同的圖形,這些圖形的繪制不會涉及到太多的配置項(xiàng),本文中的重點(diǎn)是如何將不同類型的圖形組合在一起。這些圖形包含:

  • 柱狀圖

  • 餅圖

  • 折線圖

  • 熱力圖

  • 漏斗圖

  • 儀表盤

導(dǎo)入庫

在進(jìn)行繪制數(shù)據(jù)處理和繪圖之前,我們還是需要先導(dǎo)入各種庫:

from?pyecharts.globals?import?CurrentConfig,?OnlineHostType???#?事先導(dǎo)入,防止不出圖 from?pyecharts?import?options?as?opts??#?配置項(xiàng) from?pyecharts.charts?import?Bar,?Pie,?Line,?HeatMap,?Funnel,?Gauge,?Grid,?Page??#?各個(gè)圖形的類 from?pyecharts.faker?import?Faker??#?自身數(shù)據(jù) from?pyecharts.commons.utils?import?JsCode??? from?pyecharts.globals?import?ThemeType,SymbolTypeimport?pandas?as?pd import?numpy?as?np import?random

模擬數(shù)據(jù)

首先我們模擬一份簡單的數(shù)據(jù):通過下面的方式我們可以掌握如何利用pandas快速生成一個(gè)DataFrame數(shù)據(jù)

柱狀圖

柱狀圖的制作使用的是 Bar 方法:

bar?=?(Bar().add_xaxis(df['消費(fèi)'].tolist()).add_yaxis("5大開支",df['數(shù)據(jù)'].tolist()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-月度開支"),legend_opts=opts.LegendOpts(is_show=False),) )bar.render_notebook()

餅圖

餅圖的制作使用的是Pie:

pie?=?(Pie().add("",?[list(z)?for?z?in?zip(df['消費(fèi)'].tolist(),?df['數(shù)據(jù)'].tolist())]).set_global_opts(title_opts=opts.TitleOpts(title="Pie-月度開支")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:?{c}")) )pie.render_notebook()

餅圖視頻:

折線圖

折線圖的制作使用的是 Line:

line?=?(Line().add_xaxis(df['消費(fèi)'].tolist()).add_yaxis("月度開支",?df['數(shù)據(jù)'].tolist()).set_global_opts(title_opts=opts.TitleOpts(title="Line-月度開支")) )line.render_notebook()

熱力圖

熱力圖使用的是HeatMap()方法,在這里我們使用的是pyecharts中自帶的數(shù)據(jù):

print(Faker.week) print(Faker.clock) #?0-50?的隨機(jī)數(shù)+列表推導(dǎo)式#?兩層的列表推導(dǎo)式 value?=?[[i,?j,?random.randint(0,?50)]?for?i?in?range(24)?for?j?in?range(7)]heatmap?=?(HeatMap().add_xaxis(Faker.clock)???#?橫軸標(biāo)簽.add_yaxis("熱力圖",?Faker.week,?value)???#?傳入兩個(gè)列表數(shù)據(jù).set_global_opts(title_opts=opts.TitleOpts(title="HeatMap-熱力圖"),visualmap_opts=opts.VisualMapOpts(),) )heatmap.render_notebook()

熱力圖視頻:

漏斗圖

漏斗圖在用戶畫像中運(yùn)用的非常廣,尤其是在電商領(lǐng)域中,從訪問、瀏覽到最終的支付成功等一系列的操作構(gòu)成一個(gè)漏斗,在這里我們模擬一份數(shù)據(jù)來繪制漏斗圖,先生成一個(gè)模擬數(shù)據(jù):

繪圖代碼如下:

funnel?=?(Funnel().add("商城漏斗",?[list(z)?for?z?in?zip(df1['操作'].tolist(),?df1['人數(shù)'].tolist())]).set_global_opts(title_opts=opts.TitleOpts(title="商城用戶漏斗分析")) )funnel.render_notebook()

漏斗圖視頻:

儀表盤

在這里我們采用官方中的一個(gè)實(shí)例來制作簡單的儀表盤:

gauge?=?(Gauge().add("",?[("完成率",?80)]).set_global_opts(title_opts=opts.TitleOpts(title="Gauge-儀表盤")) )gauge.render_notebook()

03 組合繪圖

在上面我們通過不同的方法繪制出了各種不同的圖形,都是動態(tài)可視化的,非常精美的。下面我們通過 Page 類來將上面的多種圖形來放到一個(gè)可視化看板中。

1、首先給出整體的繪圖代碼

#?1、柱狀圖 def?barPage()?->?Bar:?bar?=?(Bar().add_xaxis(df['消費(fèi)'].tolist()).add_yaxis("5大開支",df['數(shù)據(jù)'].tolist()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-月度開支"),legend_opts=opts.LegendOpts(is_show=False),))return?bar#?2、餅圖 def?piePage()?->?Pie:pie?=?(Pie().add("",?[list(z)?for?z?in?zip(df['消費(fèi)'].tolist(),?df['數(shù)據(jù)'].tolist())]).set_global_opts(title_opts=opts.TitleOpts(title="Pie-月度開支")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:?{c}")))return?pie#?3、折線圖 def?linePage()?->?Line:line?=?(Line().add_xaxis(df['消費(fèi)'].tolist()).add_yaxis("月度開支",?df['數(shù)據(jù)'].tolist()).set_global_opts(title_opts=opts.TitleOpts(title="Line-月度開支")))return?line#?4、熱力圖def?heatmapPage()?->?HeatMap:value?=?[[i,?j,?random.randint(0,?50)]?for?i?in?range(24)?for?j?in?range(7)]heatmap?=?(HeatMap().add_xaxis(Faker.clock).add_yaxis("熱力圖",?Faker.week,?value).set_global_opts(title_opts=opts.TitleOpts(title="HeatMap-熱力圖"),visualmap_opts=opts.VisualMapOpts(),))return?heatmap#?5、漏斗圖 def?funnelPage()?->?Funnel:funnel?=?(Funnel().add("商品",?[list(z)?for?z?in?zip(Faker.choose(),?Faker.values())]).set_global_opts(title_opts=opts.TitleOpts(title="Funnel-漏斗圖")))return?funnel#?6、儀表盤 def?gaugePage()?->?Gauge:gauge?=?(Gauge().add("",?[("完成率",?80)]).set_global_opts(title_opts=opts.TitleOpts(title="Gauge-儀表盤")))return?gauge#?上面是6個(gè)圖形的代碼,下面利用Page進(jìn)行組合 #?!!!?關(guān)鍵步驟 page?=?(Page(layout=Page.DraggablePageLayout).add(barPage(),piePage(),linePage(),funnelPage(),heatmapPage(),gaugePage()) )page.render("page_demo.html")

2、現(xiàn)在解釋一下上面的代碼:

  • 柱狀圖、餅圖等不同的圖形我們封裝成不同的函數(shù)來實(shí)現(xiàn)

  • 使用Page類的add方法,添加上面的各個(gè)函數(shù)

  • 最后使用page.render()來生成一個(gè)html文件,就是我們的各個(gè)圖形下一個(gè)html頁面中

現(xiàn)在看看生成的組合圖形1的效果

組合圖形1:

在目前生成的組合圖形1中,要注意4點(diǎn):

  • 左上角有個(gè)save config的按鈕,接下來這個(gè)按鈕大有用處

  • 整體的圖形是單個(gè)上下排列的,且整體靠左,右邊很多的空白

  • 每個(gè)圖形都是虛線框,這表示圖形可變大小,同時(shí)可以移動的

  • 整體需要上下滑動來瀏覽全部的圖形,視覺效果不佳

下面我們通過save config按鈕來進(jìn)行改動,生成一個(gè)我們自己想看到的組合圖形2效果:

組合圖形2:

當(dāng)我們把圖形按照我們的需求排列OK之后,此時(shí)圖形仍然沒有被固定下來,如果我們刷新當(dāng)前頁面,又會變成組合圖形1的效果。

現(xiàn)在點(diǎn)擊save config按鈕,保存我們的配置文件。此時(shí)會在本地當(dāng)前目錄下生成一個(gè)chart_config.json的配置文件。

接下來我們利用這個(gè)配置來生成上面我們想要達(dá)到的效果圖形,將圖形的格式固定下來,使用下面的代碼:

Page.save_resize_html("page_demo.html",???#?上面的HTML文件名稱cfg_file="chart_config.json",??#?保存的json配置文件dest="new_page_demo.html")??#?新HTML文件名稱

在jupyter notebook中再運(yùn)行一次,這樣我們就將圖形的格式固定下來了。通過這種方式我們可以設(shè)置圖形的任意大小和位置,部分截圖如下:

本文結(jié)合各種圖形的簡單制作,最終使用 Page 將各種圖形組合在一起,形成了一個(gè)可視化看板的效果,希望對大家掌握 Pyecharts 的使用有所幫助,真正在實(shí)際工作中使用到 Pyecharts 這個(gè)視化神器。

作者簡介

Peter,碩士畢業(yè)僧一枚,從電子專業(yè)自學(xué)Python入門數(shù)據(jù)行業(yè),擅長數(shù)據(jù)分析及可視化。喜歡數(shù)據(jù),堅(jiān)持跑步,熱愛閱讀,樂觀生活。個(gè)人格言:不浮于世,不負(fù)于己

個(gè)人站點(diǎn):www.renpeter.cn,歡迎常來小屋逛逛

往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯 獲取本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開: https://t.zsxq.com/qFiUFMV 本站qq群704220115。加入微信群請掃碼:

總結(jié)

以上是生活随笔為你收集整理的【Python】Pyecharts 组合图形绘制实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。