www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > AI科技大本營(yíng)
[導(dǎo)讀]作者|俊欣來(lái)源|關(guān)于數(shù)據(jù)分析與可視化前兩篇Pyecharts的文章來(lái)幫我們簡(jiǎn)單的梳理了一下可以用Pyecharts來(lái)繪制哪些圖表之后,本篇文章我們用pyecharts里面的一些組件,將繪制的圖表都組合起來(lái)首先Grid組件首先介紹Pyecharts模塊當(dāng)中的Grid組件,使用Gri...

用?Pyecharts?制作炫酷的可視化大屏作者 | 俊欣來(lái)源 | 關(guān)于數(shù)據(jù)分析與可視化前兩篇Pyecharts的文章來(lái)幫我們簡(jiǎn)單的梳理了一下可以用Pyecharts來(lái)繪制哪些圖表之后,本篇文章我們用pyecharts里面的一些組件,將繪制的圖表都組合起來(lái)


用?Pyecharts?制作炫酷的可視化大屏


用?Pyecharts?制作炫酷的可視化大屏首先Grid組件首先介紹Pyecharts模塊當(dāng)中的Grid組件,使用Grid組件可以很好地將多張圖無(wú)論是上下組合還是左右組合,都能夠很好地拼接起來(lái),我們先來(lái)看第一個(gè)例子


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")) 用?Pyecharts?制作炫酷的可視化大屏


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


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")) 用?Pyecharts?制作炫酷的可視化大屏


可以看到我們無(wú)論是想上下拼接還是左右拼接,都可以通過(guò)調(diào)整參數(shù)“pos_left”、“pos_right”、“pos_top”以及“pos_bottom”這幾個(gè)參數(shù)來(lái)實(shí)現(xiàn),我們?cè)賮?lái)看一下下面這個(gè)例子,我們也可以將地圖和直方圖兩者拼接起來(lái)


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")) 用?Pyecharts?制作炫酷的可視化大屏


用?Pyecharts?制作炫酷的可視化大屏再談Overlap組件英文單詞“overlap”的意思是重疊,那么放在這里,也就指的是可以將多張圖合并成一張,那么該怎么結(jié)合才好呢?我們來(lái)看一下下面這個(gè)例子,我們將直方圖和折線圖通過(guò)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} 個(gè)"), 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} 個(gè)")), ))
line = Line().add_xaxis(Faker.provinces).add_yaxis("商家C", v3, yaxis_index=1)bar.overlap(line)bar.render("直方圖 折線圖Overlap.html") 用?Pyecharts?制作炫酷的可視化大屏


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


用?Pyecharts?制作炫酷的可視化大屏Grid組件 Overlap組件相結(jié)合我們也可以將上面提高的兩個(gè)組件結(jié)合起來(lái)使用,以此來(lái)繪制多條Y軸的直方圖圖表,代碼如下
Bar() .add_xaxis(x_data) .add_yaxis( "A", [具體相關(guān)的數(shù)據(jù)], yaxis_index=0, color="#d14a61", ) .add_yaxis( "B", [具體相關(guān)的數(shù)據(jù)], yaxis_index=1, color="#5793f3", ) .直方圖的全局配置代碼.... line = ( Line() .add_xaxis(x_data) .add_yaxis( "C", [具體相關(guān)的數(shù)據(jù)], 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") 用?Pyecharts?制作炫酷的可視化大屏


用?Pyecharts?制作炫酷的可視化大屏分頁(yè)組件Tab我們?cè)谟肞yecharts繪制了多張圖表之后,可以直接Tab組件將多張圖表連起來(lái),一頁(yè)放一張圖表,具體看下面的例子和代碼,


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 c
def 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 c
def 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 c tab = Tab()tab.add(bar_datazoom_slider(), "直方圖")tab.add(line_markpoint(), "折線圖")tab.add(pie_rosetype(), "餅圖")tab.render("tab_base.html") 用?Pyecharts?制作炫酷的可視化大屏


分別將所繪制的三張圖表放置在三個(gè)頁(yè)面當(dāng)中,通過(guò)pyecharts庫(kù)當(dāng)中的tab串聯(lián)起來(lái)用?Pyecharts?制作炫酷的可視化大屏最后是Page組件和上面Tab組件不一樣的是,Tab組件是一頁(yè)放一張圖表,有幾張圖表就分成幾頁(yè),而Page組件則是將繪制完成的多張圖表統(tǒng)統(tǒng)放在一張頁(yè)面里面,代碼的改動(dòng)上面也十分的簡(jiǎn)單,只要將上面代碼的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 c
def 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 c
def 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 c page = Page(layout=Page.SimplePageLayout)page.add( bar_datazoom_slider(), line_markpoint(), pie_rosetype(),)page.render("page_simple_layout.html") 用?Pyecharts?制作炫酷的可視化大屏


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


## 上面的代碼都一樣,page = Page(layout=Page.DraggablePageLayout)page.add( bar_datazoom_slider(), line_markpoint(), pie_rosetype(),)page.render("page_draggable_layout.html") 用?Pyecharts?制作炫酷的可視化大屏



用?Pyecharts?制作炫酷的可視化大屏



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉