介紹:
我在前幾期分享了關(guān)于爬取weibo評論的爬蟲,同時(shí)也分享了如何去進(jìn)行數(shù)據(jù)可視化的操作。但是之前的可視化都是單獨(dú)的,沒有辦法在一個(gè)界面上展示的。這樣一來呢,大家在看的時(shí)候其實(shí)是很不方便的,就是沒有辦法一目了然的看到數(shù)據(jù)的規(guī)律。為了解決這個(gè)問題我使用pyecharts實(shí)現(xiàn)了一個(gè)可視化的大屏。接下來為大家分享一下
視頻分享:
https://www.bilibili.com/video/BV1BV41197kv/?spm_id_from=333.999.0.0
可視化大屏展示:
可視化大屏1
可視化大屏2:
實(shí)現(xiàn)流程解析:
本次實(shí)現(xiàn)使用的是pyecharts這個(gè)庫
第一步肯定是安裝pyecharts這個(gè)庫了
安裝可以使用pip進(jìn)行安裝,命令如下:pip install pyecharts
如果安裝不成功的話,可以使用清華鏡像站進(jìn)行安裝,命令如下: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts
第二步就是寫代碼了,其實(shí)我們可以到pyecharts的官網(wǎng)上看一下案例的。一看就基本上知道怎么寫的了。
下面的這個(gè)就是pyecharts的網(wǎng)站了。
我們隨便點(diǎn)擊一個(gè)案例看一下
可以看到案例代碼寫的非常的詳細(xì),需要哪些庫,然后數(shù)據(jù)的格式是怎樣的一目了然。
然后我們按照對應(yīng)的代碼寫就可以了。
下面就是pyecharts官方給的拖拉拽的可視化效果,可以給代碼拿下來運(yùn)行體驗(yàn)一下
閱讀了代碼以后,我總結(jié)一下其實(shí)實(shí)現(xiàn)拖拉拽的數(shù)據(jù)可視化大屏就是給原來單個(gè)的可視化圖表add到布局的layout就可以了。
下面是我總結(jié)的代碼模板:def bar_datazoom_slider01() -> 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 bar_datazoom_slider02() -> 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
給單個(gè)的寫好以后,add到layout中就可以了,像不像搭積木一樣的def page_draggable_layout(): page = Page(layout=Page.DraggablePageLayout) page.add( bar_datazoom_slider(), line_markpoint(), pie_rosetype(), grid_mutil_yaxis(), liquid_data_precision(), table_base(), ) page.render("page_draggable_layout.html")
還有詞云
然后單個(gè)的代碼如下:
`import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
讀取CSV數(shù)據(jù)
df = pd.read_csv('./weiboData.csv')
處理粉絲數(shù)(以“萬”為單位的情況)
df['粉絲數(shù)'] = df['粉絲數(shù)'].apply(lambda x: float(x.replace('萬', '')) * 10000 if '萬' in str(x) else float(x))
選擇粉絲數(shù)前20的用戶
top20_users = df.nlargest(20, '粉絲數(shù)')
c = (
? ? Bar(init_opts=opts.InitOpts(renderer='svg'))
? ? .add_xaxis(list(top20_users['評論用戶名']))
? ? .add_yaxis("粉絲數(shù)", list(top20_users['粉絲數(shù)']))
? ? .add_yaxis("關(guān)注數(shù)", list(top20_users['關(guān)注人數(shù)']))
? ? .reversal_axis()
? ? .set_series_opts(label_opts=opts.LabelOpts(position="right"))
? ? .set_global_opts(title_opts=opts.TitleOpts(title="評論用戶粉絲前20情況"))
? ? .render("fans.html")
)`
還有其他的,我就不一一列代碼了
然后我們現(xiàn)在的工作就是給他們整合到一起就可以了
具體,比如說我們可以先整合這個(gè)showFans.py的代碼,
就是這個(gè)樣子:
`def showFans() -> Bar:
? ? df = pd.read_csv('./weiboData.csv')
# 處理粉絲數(shù)(以“萬”為單位的情況)
? ? df['粉絲數(shù)'] = df['粉絲數(shù)'].apply(lambda x: float(x.replace('萬', '')) * 10000 if '萬' in str(x) else float(x))
# 選擇粉絲數(shù)前20的用戶
? ? top20_users = df.nlargest(20, '粉絲數(shù)')
c = (
? ? ? ? Bar(init_opts=opts.InitOpts(renderer='svg',theme="dark"))
? ? ? ? .add_xaxis(list(top20_users['評論用戶名']))
? ? ? ? .add_yaxis("粉絲數(shù)", list(top20_users['粉絲數(shù)']))
? ? ? ? .add_yaxis("關(guān)注數(shù)", list(top20_users['關(guān)注人數(shù)']))
? ? ? ? .reversal_axis()
? ? ? ? .set_series_opts(label_opts=opts.LabelOpts(position="right"))
? ? ? ? .set_global_opts(title_opts=opts.TitleOpts(title="評論用戶粉絲前20情況"))
? ? )
return c ?# 返回圖表對象而不是調(diào)用 render 函數(shù)`
`def pageLayout():
? ? # 創(chuàng)建拖拽布局的頁面
? ? page = Page(layout=Page.DraggablePageLayout)
# 添加自定義圖表函數(shù)
? ? page.add(
? ? ? ? showFans()
? ? )
# 渲染頁面
? ? page.render("demo.html")`
這樣就給一個(gè)整合好了,然后后面的就是無腦操作了。
之后我們運(yùn)行代碼會(huì)產(chǎn)生一個(gè)demo.html的文件(這個(gè)文件命名自定義,我的代碼里寫的是demo.html,你也可以叫其他的名字,都可以的),點(diǎn)擊這個(gè)文件就會(huì)展示我們的大屏,下面就是最終的效果了
我們可以看到在圖的左上角有一個(gè)save config,這個(gè)的作用呢其實(shí)就是為了保存我拖拉拽排版大屏之后的配置文件。就是說,當(dāng)我們進(jìn)行拖拽各個(gè)單獨(dú)的可視化文件的時(shí)候,各個(gè)子可視化文件之間會(huì)有對應(yīng)的位置信息,這個(gè)config文件呢就是記錄這些信息的。
當(dāng)我們進(jìn)行排版好以后,我們就看可以點(diǎn)擊save config然后保存這個(gè)config信息。
之后我們展示正式的大屏的時(shí)候時(shí)候,加載這個(gè)config文件就可以展示了。這個(gè)就是正式的版本了。
完成了上面的操作以后,然后就是使用demo.html和chart_config.json來實(shí)現(xiàn)正式版本的大屏。具體實(shí)現(xiàn)代碼如下:
`from pyecharts.charts import Page
Page.save_resize_html(
? ? source="demo.html",
? ? cfg_file="chart_config.json",
? ? dest="final_dashboard.html")`
然后我們在運(yùn)行這個(gè)代碼,就會(huì)產(chǎn)生一個(gè)final_dashboard.html文件,我們雙擊這個(gè)文件就會(huì)看到最終的效果了。文章來源:http://www.zghlxwxcb.cn/news/detail-777353.html
由于筆者能力有限,所以在闡述的時(shí)候難免有些不準(zhǔn)確的地方,還請大家多多包涵!
源碼鏈接:https://mp.weixin.qq.com/s/NhORe4o5054vNqpVenfmNg文章來源地址http://www.zghlxwxcb.cn/news/detail-777353.html
到了這里,關(guān)于【python可視化大屏】使用python實(shí)現(xiàn)可拖拽數(shù)據(jù)可視化大屏的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!