本篇內(nèi)容主要講解“怎么使用Python制作一個(gè)數(shù)據(jù)大屏”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么使用Python制作一個(gè)數(shù)據(jù)大屏”吧!
我們擁有10多年網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、微信開發(fā)、小程序開發(fā)、移動(dòng)網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。
Python當(dāng)中的PywebIO模塊可以幫助開發(fā)者在不具備HTML和JavaScript的情況下也能夠迅速構(gòu)建Web應(yīng)用或者是基于瀏覽器的GUI應(yīng)用,PywebIO還可以和一些常用的可視化模塊聯(lián)用,制作成一個(gè)可視化大屏。
我們先來安裝好需要用到的模塊。
pip install pywebio pip install cutecharts
上面提到的cutecharts模塊是Python當(dāng)中的手繪風(fēng)格的可視化神器,相信大家對(duì)此并不陌生,我們來看一下它與PywebIO模塊結(jié)合繪制圖表的效果是什么樣的,代碼如下:
from cutecharts.charts import Bar from cutecharts.faker import Faker from pywebio import start_server from pywebio.output import put_html def bar_base(): chart = Bar("Bar-基本示例", width="100%") chart.set_options(labels=Faker.choose(), x_label="I'm xlabel", y_label="I'm ylabel") chart.add_series("series-A", Faker.values()) put_html(chart.render_notebook()) if __name__ == '__main__': start_server(bar_base, debug=True, port=8080)
output
上述代碼的邏輯并不難看懂,先實(shí)例化一個(gè)直方圖Bar()對(duì)象,然后填上X軸對(duì)應(yīng)的標(biāo)簽以及對(duì)應(yīng)Y軸的值,最后調(diào)用PywebIO模塊當(dāng)中的put_html()方法,我們會(huì)看到一個(gè)URL。
在瀏覽器當(dāng)中輸入該URL便能夠看到我們繪制出來的圖表。當(dāng)然在cutecharts模塊當(dāng)中有Page()方法來將各個(gè)圖表都連接起來,做成一張可視化大屏,代碼如下:
def bar_base(): chart = Bar("Bar-基本示例", width="100%") chart.set_options(labels=Faker.choose(), x_label="I'm xlabel", y_label="I'm ylabel") chart.add_series("series-A", Faker.values()) return chart def pie_base() -> Pie: chart = Pie("標(biāo)題", width="100%") ........ return chart def radar_base() -> Radar: chart = Radar("標(biāo)題", width="100%") ...... return chart def line_base() -> Line: chart = Line("標(biāo)題", width="100%") ...... return chart def main(): page = Page() page.add(pie_base(), pie_base(), radar_base(), line_base(), bar_base()) put_html(page.render_notebook()) if __name__ == '__main__': start_server(main, debug=True, port=8080)
output
當(dāng)PywebIO模塊遇上Pyecharts模塊時(shí),代碼的邏輯基本上和cutecharts的一致,先是實(shí)例化一個(gè)圖表的對(duì)象,然后在添加完數(shù)據(jù)以及設(shè)置好圖表的樣式之后,最后調(diào)用put_html()方法將最后的結(jié)果在瀏覽器中呈現(xiàn)。
# `chart` 是你的圖表的實(shí)例 pywebio.output.put_html(chart.render_notebook())
在這個(gè)案例當(dāng)中我們調(diào)用Pyecharts當(dāng)中的組合組件,分別來呈現(xiàn)繪制完成的圖表,代碼如下:
def bar_plots(): bar = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="Grid-Bar")) ) return bar def line_plots(): line = ( Line() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts( title_opts=opts.TitleOpts(title="Grid-Line", pos_top="48%"), legend_opts=opts.LegendOpts(pos_top="48%"), ) ) return line def main(): c = ( Grid() .add(bar_plots(), grid_opts=opts.GridOpts(pos_bottom="60%")) .add(line_plots(), grid_opts=opts.GridOpts(pos_top="60%")) ) c.width = "100%" put_html(c.render_notebook()) if __name__ == '__main__': start_server(main, debug=True, port=8080)
output
PywebIO和Bokeh的組合從代碼的語法上來看會(huì)稍微和上面的不太一樣,具體的不同如下所示:
from bokeh.io import output_notebook from bokeh.io import show output_notebook(notebook_type='pywebio') fig = figure(...) ... show(fig)
例如我們來繪制一個(gè)簡(jiǎn)單的直方圖,代碼如下:
def bar_plots(): output_notebook(notebook_type='pywebio') fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries'] counts = [5, 3, 4, 2, 4, 6] p = figure(x_range=fruits, plot_height=350, title="Fruit Counts", toolbar_location=None, tools="") p.vbar(x=fruits, top=counts, width=0.9) p.xgrid.grid_line_color = None p.y_range.start = 0 show(p) if __name__ == "__main__": start_server(bar_plots, debug=True, port=8080)
output
除了將Pywebio模塊與常用的可視化模塊結(jié)合用于各種圖表的繪制之外,我們還能用它構(gòu)建一個(gè)基于瀏覽的圖形界面,我們先來做一個(gè)最為簡(jiǎn)單的應(yīng)用,代碼如下:
from pywebio.input import * from pywebio.output import * data = input_group( "用戶數(shù)據(jù)", [ input("請(qǐng)問您的名字是: ", name="name", type=TEXT), input("輸入您的年齡", name="age", type=NUMBER), radio( "哪個(gè)洲的", name="continent", options=[ "非洲", "亞洲", "澳大利亞", "歐洲", "北美洲", "南美洲", ], ), checkbox( "用戶隱私條例", name="agreement", options=["同意"] ), ], ) put_text("表格輸出:") put_table( [ ["名字", data["name"]], ["年齡", data["age"]], ["位置", data["continent"]], ["條例", data["agreement"]], ] )
output
當(dāng)中部分函數(shù)方法的解釋如下:
input(): 文本內(nèi)容的輸入
radio(): 代表的是單選框
checkbox(): 代表的是多選框
input_group(): 代表的是輸入組
put_table(): 代表的是輸出組
put_text(): 代表的是輸出文本
到此,相信大家對(duì)“怎么使用Python制作一個(gè)數(shù)據(jù)大屏”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
當(dāng)前題目:怎么使用Python制作一個(gè)數(shù)據(jù)大屏
文章網(wǎng)址:http://muchs.cn/article30/jpgdpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、品牌網(wǎng)站制作、外貿(mào)建站、響應(yīng)式網(wǎng)站、定制開發(fā)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)