乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      教你用pyecharts制作交互式?;鶊D,趕快學(xué)起來(lái)吧!

       imelee 2019-08-30

      由于工作的需要,經(jīng)常需要進(jìn)行可視化展示,除了一些常用的BI工具,我也會(huì)使用python對(duì)數(shù)據(jù)進(jìn)行可視化。

      python的第三方可視化庫(kù)有很多,比如matplotlib、seaborn、plotly、bokeh、pyecharts等等。

      這次就來(lái)說一說,如何用python的第三方庫(kù)-pyecharts制作交互式?;鶊D。

      示例

      1
      什么是桑基圖?
      桑基圖是可視化圖表的一種,一般用來(lái)表示數(shù)據(jù)流量。

      ?;鶊D(Sankey diagram),即桑基能量分流圖,也叫桑基能量平衡圖。它是一種特定類型的流程圖,圖中延伸的分支的寬度對(duì)應(yīng)數(shù)據(jù)流量的大小,比較適用于用戶流量等數(shù)據(jù)的可視化分析。因1898年Matthew Henry Phineas Riall Sankey繪制的“蒸汽機(jī)的能源效率圖”而聞名,此后便以其名字命名為“?;鶊D”。

      ?;鶊D主要由邊、流量和支點(diǎn)組成,其中邊代表了流動(dòng)的數(shù)據(jù),流量代表了流動(dòng)數(shù)據(jù)的具體數(shù)值,節(jié)點(diǎn)代表了不同分類。邊的寬度與流量成比例地顯示,邊越寬,數(shù)值越大。 
      舉個(gè)例子,假如我記錄了自己一段時(shí)間的消費(fèi)金額,并且分門別類列出清單:
      數(shù)據(jù)展示不足以一目了然地看出哪類消費(fèi)多、哪類消費(fèi)少,如果把它做成?;鶊D,就可以很完美地展現(xiàn)消費(fèi)特征:
      靜圖

      可交互

      2
      什么是pyecharts?
      大部分人可能聽過echarts,它是百度旗下用于可視化設(shè)計(jì)的開源項(xiàng)目,而pyecharts則將echarts和python結(jié)合,方便在python中調(diào)用echarts接口,直接生成可視化圖表。
      官方對(duì)pyecharts特性的描述:

      • 簡(jiǎn)潔的 API 設(shè)計(jì),使用如絲滑般流暢,支持鏈?zhǔn)秸{(diào)用
      • 囊括了 30+ 種常見圖表,應(yīng)有盡有
      • 支持主流 Notebook 環(huán)境,Jupyter Notebook 和 JupyterLab
      • 可輕松集成至 Flask,Django 等主流 Web 框架
      • 高度靈活的配置項(xiàng),可輕松搭配出精美的圖表
      • 詳細(xì)的文檔和示例,幫助開發(fā)者更快的上手項(xiàng)目
      • 多達(dá) 400+ 地圖文件以及原生的百度地圖,為地理數(shù)據(jù)可視化提供強(qiáng)有力的支持


      pyecharts安裝過程很簡(jiǎn)單,用pip安裝即可,在命令行輸入:

      pip install pyecharts
      你只需要簡(jiǎn)單的代碼就可以生成圖表:








      from pyecharts.charts import Bar
      bar = Bar()bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])# render 會(huì)生成本地 HTML 文件,默認(rèn)會(huì)在當(dāng)前目錄生成 render.html 文件# 也可以傳入路徑參數(shù),如 bar.render("mycharts.html")bar.render()
      3
      使用pyecharts制作?;鶊D
      前面我們展示了一張生活開支交互式?;鶊D:


      下面就來(lái)用pyecharts實(shí)現(xiàn)它
      ?;鶊D在pyecharts中通過Sankey方法實(shí)現(xiàn),它接受兩個(gè)外部輸入。
      一個(gè)是所有類別的集合-nodes,一個(gè)是子類、父類、數(shù)據(jù)的三方集合-links。
      這兩個(gè)都是以json數(shù)據(jù)格式傳入,最后以html形式輸出圖表。

      nodes
      links:
      也就是說,首先你要把數(shù)據(jù)轉(zhuǎn)換成Sankey可以接受的形式。
      第一步:數(shù)據(jù)準(zhǔn)備
      我們已經(jīng)有這樣的數(shù)據(jù)表:
      對(duì)數(shù)據(jù)進(jìn)行整理,我的做法是先初步整理成:子類-父類-數(shù)據(jù),以這樣的數(shù)據(jù)形式保存在csv中:

      接著,寫個(gè)簡(jiǎn)單轉(zhuǎn)換代碼,將上面數(shù)據(jù)轉(zhuǎn)換成nodes和links:
























      # 導(dǎo)入相關(guān)庫(kù)import pandas as pdfrom pyecharts.charts import Page, Sankeyfrom pyecharts import options as opts
      # 讀取csv文件data = pd.read_csv(r'sample.csv',encoding='gbk',header=None)
      # 生成nodesnodes = []nodes.append({'name':'總支出'})for i in data[0].unique(): dic = {} dic['name'] = i nodes.append(dic)
      # 生成linkslinks = []for i in data.values: dic = {} dic['source'] = i[0] dic['target'] = i[1] dic['value'] = i[2]    links.append(dic)
      第二步:生成可視化結(jié)果
      準(zhǔn)備好nodes和links后,就可以調(diào)用Sankey函數(shù)














      # pyecharts 所有方法均支持鏈?zhǔn)秸{(diào)用。c = ( Sankey() .add("費(fèi)用/元", nodes, links, linestyle_opt=opts.LineStyleOpts(opacity=0.2, curve=0.5, color="source",type_="dotted"), label_opts=opts.LabelOpts(position="right",), ) .set_global_opts(title_opts=opts.TitleOpts(title="我的生活支出一覽")) )# 輸出html可視化結(jié)果c.render('result.html')
      你可以通過配置項(xiàng)otps來(lái)設(shè)置圖表的顏色、標(biāo)簽、標(biāo)題等信息,具體細(xì)節(jié)可以去官網(wǎng)查詢,這里不做贅述。
      官網(wǎng)鏈接:https://
      第三步:打開html文
      生成html文件后,直接通過瀏覽器打開即可,就可以看到能交互的桑吉圖了
      4
      結(jié)論
      本文介紹了如何使用pyecharts在python中制作交互式?;鶊D,希望能給大家的可視化提供幫助!




      END

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多