日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】用Pyecharts制作炫酷的可视化大屏

發布時間:2025/3/12 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】用Pyecharts制作炫酷的可视化大屏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前兩篇Pyecharts的文章來幫我們簡單的梳理了一下可以用Pyecharts來繪制哪些圖表之后,本篇文章我們用pyecharts里面的一些組件,將繪制的圖表都組合起來

首先Grid組件

首先介紹Pyecharts模塊當中的Grid組件,使用Grid組件可以很好地將多張圖無論是上下組合還是左右組合,都能夠很好地拼接起來,我們先來看第一個例子

bar = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家1", Faker.values()).add_yaxis("商家2", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="直方圖")) ) line = (Line().add_xaxis(Faker.choose()).add_yaxis("商家1", Faker.values()).add_yaxis("商家2", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="折線圖", pos_top="48%"),legend_opts=opts.LegendOpts(pos_top="48%"),) )grid = (Grid().add(bar, grid_opts=opts.GridOpts(pos_bottom="60%")).add(line, grid_opts=opts.GridOpts(pos_top="50%")).render("水平組合圖_test.html") )

我們可以看到兩張圖表被以上下組合的方式拼接起來,當然除了上下的拼接以外,我們還可以左右來拼接,代碼如下

bar = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家1", Faker.values()).add_yaxis("商家2", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="直方圖"),legend_opts=opts.LegendOpts(pos_left="20%"),) ) line = (Line().add_xaxis(Faker.choose()).add_yaxis("商家1", Faker.values()).add_yaxis("商家2", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="折線圖", pos_right="5%"),legend_opts=opts.LegendOpts(pos_right="20%"),) )grid = (Grid().add(bar, grid_opts=opts.GridOpts(pos_left="60%")).add(line, grid_opts=opts.GridOpts(pos_right="50%")).render("垂直組合圖_test.html") )

可以看到我們無論是想上下拼接還是左右拼接,都可以通過調整參數“pos_left”、“pos_right”、“pos_top”以及“pos_bottom”這幾個參數來實現,我們再來看一下下面這個例子,我們也可以將地圖和直方圖兩者拼接起來

bar = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家1", Faker.values()).add_yaxis("商家2", Faker.values()).set_global_opts(legend_opts=opts.LegendOpts(pos_left="20%")) )map = (Map().add("商家1", [list(z) for z in zip(Faker.provinces, Faker.values())], "china").set_global_opts(title_opts=opts.TitleOpts(title="地圖-基本示例")) )grid = (Grid().add(bar, grid_opts=opts.GridOpts(pos_top="50%", pos_right="75%")).add(map, grid_opts=opts.GridOpts(pos_left="60%")).render("地圖+直方圖.html") )

再談Overlap組件

英文單詞“overlap”的意思是重疊,那么放在這里,也就指的是可以將多張圖合并成一張,那么該怎么結合才好呢?我們來看一下下面這個例子,我們將直方圖和折線圖通過overlap組件組合到一起

v1 = Faker.values() v2 = Faker.values() v3 = Faker.values()bar = (Bar().add_xaxis(Faker.provinces).add_yaxis("商家A", v1).add_yaxis("商家B", v2).extend_axis(yaxis=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 個"), interval=20)).set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="Overlap-bar+line"),yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 個")),) )line = Line().add_xaxis(Faker.provinces).add_yaxis("商家C", v3, yaxis_index=1) bar.overlap(line) bar.render("直方圖+折線圖Overlap.html")

除此之外,我們也可以將散點圖和折線圖合并在一張圖上面,在代碼上就只要將直方圖的代碼替換成散點圖的就行,這邊也就具體不做演示

Grid組件 + Overlap組件相結合

我們也可以將上面提高的兩個組件結合起來使用,以此來繪制多條Y軸的直方圖圖表,代碼如下

Bar().add_xaxis(x_data).add_yaxis("A",[具體相關的數據],yaxis_index=0,color="#d14a61",).add_yaxis("B",[具體相關的數據],yaxis_index=1,color="#5793f3",).直方圖的全局配置代碼....line = (Line().add_xaxis(x_data).add_yaxis("C",[具體相關的數據],yaxis_index=2,color="#675bba",label_opts=opts.LabelOpts(is_show=False),) )bar.overlap(line) grid = Grid() grid.add(bar, opts.GridOpts(pos_left="5%", pos_right="20%"), is_control_axis_index=True) grid.render("test.html")

分頁組件Tab

我們在用Pyecharts繪制了多張圖表之后,可以直接Tab組件將多張圖表連起來,一頁放一張圖表,具體看下面的例子和代碼,

def bar_datazoom_slider() -> Bar:c = (Bar().add_xaxis(Faker.days_attrs).add_yaxis("商家A", Faker.days_values).set_global_opts(title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-水平)"),datazoom_opts=[opts.DataZoomOpts()],))return cdef line_markpoint() -> Line:c = (Line().add_xaxis(Faker.choose()).add_yaxis("商家A",Faker.values(),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min")]),).set_global_opts(title_opts=opts.TitleOpts(title="折線圖")))return cdef pie_rosetype() -> Pie:v = Faker.choose()c = (Pie().add("",[list(z) for z in zip(v, Faker.values())],radius=["30%", "75%"],center=["25%", "50%"],rosetype="radius",label_opts=opts.LabelOpts(is_show=False),).set_global_opts(title_opts=opts.TitleOpts(title="餅圖-玫瑰圖示例")))return ctab = Tab() tab.add(bar_datazoom_slider(), "直方圖") tab.add(line_markpoint(), "折線圖") tab.add(pie_rosetype(), "餅圖") tab.render("tab_base.html")

分別將所繪制的三張圖表放置在三個頁面當中,通過pyecharts庫當中的tab串聯起來

最后是Page組件

和上面Tab組件不一樣的是,Tab組件是一頁放一張圖表,有幾張圖表就分成幾頁,而Page組件則是將繪制完成的多張圖表統統放在一張頁面里面,代碼的改動上面也十分的簡單,只要將上面代碼的Tab部分改成Page()即可,如下

def bar_datazoom_slider() -> Bar:c = (Bar().add_xaxis(Faker.days_attrs).add_yaxis("商家A", Faker.days_values).set_global_opts(title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-水平)"),datazoom_opts=[opts.DataZoomOpts()],))return cdef line_markpoint() -> Line:c = (Line().add_xaxis(Faker.choose()).add_yaxis("商家A",Faker.values(),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min")]),).set_global_opts(title_opts=opts.TitleOpts(title="折線圖")))return cdef pie_rosetype() -> Pie:v = Faker.choose()c = (Pie().add("",[list(z) for z in zip(v, Faker.values())],radius=["30%", "75%"],center=["25%", "50%"],rosetype="radius",label_opts=opts.LabelOpts(is_show=False),).set_global_opts(title_opts=opts.TitleOpts(title="餅圖-玫瑰圖示例")))return cpage = Page(layout=Page.SimplePageLayout) page.add(bar_datazoom_slider(),line_markpoint(),pie_rosetype(), ) page.render("page_simple_layout.html")

上圖所示的圖表在頁面當中是不能被挪動的,在Page()組件當中我們還能夠使得圖表按照我們所想的那樣隨意的挪動

##?上面的代碼都一樣, page = Page(layout=Page.DraggablePageLayout) page.add(bar_datazoom_slider(),line_markpoint(),pie_rosetype(), ) page.render("page_draggable_layout.html")

寫在最后

本篇文章所用到的繪制的圖表都比較的簡單,為了可以讓讀者更加容易輕松的上手來實踐,本質上就是通過上面提到的幾大組件將繪制好的圖表給串聯起來,想要獲取源碼在作者公眾號后臺回復“pyecharts組件”就行

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載黃海廣老師《機器學習課程》視頻課黃海廣老師《機器學習課程》711頁完整版課件

本站qq群554839127,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【Python】用Pyecharts制作炫酷的可视化大屏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。