0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Python實(shí)現(xiàn)交互式數(shù)據(jù)可視化的工具

電子工程師 ? 來(lái)源:fqj ? 2019-05-14 11:47 ? 次閱讀

該項(xiàng)目的學(xué)生背景多元,并且他們?cè)谏线@門課前都對(duì)R和Python有了很深入的理解。通過(guò)各種課程的學(xué)習(xí),他們已經(jīng)能夠熟練使用ggplot2和matplotlib,為學(xué)習(xí)大型多變量數(shù)據(jù)可視化打下了基礎(chǔ)。

作為一個(gè)數(shù)據(jù)可視化的研究者,我想要介紹所有那些在數(shù)據(jù)可視化領(lǐng)域涌現(xiàn)的絕妙技術(shù)。因此,我的課程的其中一部分將會(huì)是基于研究論文,在線可視化和d3示例的講座。

Python中的數(shù)據(jù)可視化

現(xiàn)在大部分的數(shù)據(jù)可視化研究都是通過(guò)D3進(jìn)行的。遺憾的是,我只有短短8周跟學(xué)生相處的時(shí)間,所以我只能專注于講授理論和實(shí)踐相結(jié)合的內(nèi)容來(lái)幫助他們成為數(shù)據(jù)科學(xué)家。雖然學(xué)生樂(lè)于使用可視化技術(shù)探索并解釋問(wèn)題,但他們中的大多數(shù)對(duì)于使用D3創(chuàng)建美麗的自定義可視化不太感興趣。根據(jù)之前教授這門課的教授反饋來(lái)看,在這么短的時(shí)間內(nèi)教授D3是不可能的。

鑒于我自己對(duì)Python的熱愛(ài)和Python給學(xué)生帶來(lái)的舒適體驗(yàn),我決定向他們介紹Python中神奇的(我希望是的?。┸浖鼈兛梢詫?shí)現(xiàn)所有我向?qū)W生展示的內(nèi)容。

Seaborn的靜態(tài)可視化

鑒于我過(guò)去使用seaborn的經(jīng)驗(yàn),我很高興能夠向?qū)W生介紹seaborn產(chǎn)生的美麗的可視化圖案。 他們已經(jīng)有了使用matplotlib的經(jīng)驗(yàn),所以學(xué)習(xí)seaborn時(shí)很容易,且優(yōu)勢(shì)巨大。 學(xué)生能夠制作散點(diǎn)圖(雙變量和多變量),swarmplots,小提琴圖,條形圖,箱形圖和帶有刻面的直方圖。他們了解到,使用大型數(shù)據(jù)集生成swarmplots非常耗時(shí),而基于摘要的圖(如小提琴圖)是更好的選擇。

Seaborn中的可視化技術(shù)示例

用Bokeh或Plot.ly實(shí)現(xiàn)交互式可視化

雖然seaborn能夠產(chǎn)生美麗的可視化圖形,但它們都是靜態(tài)的。我希望學(xué)生體驗(yàn)使用交互技術(shù)(如梳理,過(guò)濾,縮放和懸停)的好處。為此,我介紹了可視化庫(kù)Bokeh和Plot.ly,利用它們可以輕松實(shí)現(xiàn)交互式數(shù)據(jù)可視化。對(duì)于時(shí)間序列可視化分配,學(xué)生可以選擇使用Bokeh或plot.ly來(lái)實(shí)現(xiàn)多線圖(multi line charts),熱圖(heatmaps),動(dòng)畫氣泡圖(animated bubble charts)等。

使用plot.ly創(chuàng)建的可視化示例

Bokeh中的交互式可視化

可視化樹,圖和網(wǎng)絡(luò)

在討論分層數(shù)據(jù)可視化的技術(shù)時(shí),我很高興地展示樹狀圖可視化技術(shù),并將其與節(jié)點(diǎn)鏈接圖進(jìn)行了比較。遺憾的是,當(dāng)我深入挖掘時(shí),卻沒(méi)有找到實(shí)現(xiàn)多級(jí)樹狀圖的方法L即使在導(dǎo)入了squarify庫(kù)之后,你也只能在Python中生成一個(gè)一級(jí)樹狀圖!

使用squarify包只能生成一級(jí)樹圖

精彩的networkx軟件包可以被用來(lái)分析圖形和網(wǎng)絡(luò)。 然而,網(wǎng)絡(luò)可視化只能通過(guò)matplotlib或igraph或plotly來(lái)實(shí)現(xiàn)(請(qǐng)參閱使用plotly實(shí)現(xiàn)網(wǎng)絡(luò)可視化的教程)。igraph有許多不同的選項(xiàng)可以幫助用戶嘗試配置圖形,但是設(shè)置起來(lái)很不方便,因此許多學(xué)生在使用時(shí)遇到了問(wèn)題。另一方面,plot.ly使用順暢,但在自定義網(wǎng)絡(luò)圖方面幾乎沒(méi)有選擇。

地學(xué)可視化

鑒于創(chuàng)建交互式映射圖是數(shù)據(jù)可視化的重要組成部分,我對(duì)于找到能夠創(chuàng)建等值區(qū)域圖(choropleth maps),符號(hào)圖(symbol maps),統(tǒng)計(jì)圖(cartograms),交通圖(transit maps)甚至流向圖(flow maps)的軟件包更有信心。以下是我在Python中發(fā)現(xiàn)的地學(xué)可視化庫(kù):

Plot.ly允許您創(chuàng)建等值區(qū)域圖和符號(hào)圖,但幾乎無(wú)法控制圖的創(chuàng)建過(guò)程。

geoplotlib是一個(gè)小巧好用的軟件包,它建立在pyglet上,但它有點(diǎn)不穩(wěn)定,經(jīng)常崩潰。它使用OpenStreetMap圖塊,甚至允許基于動(dòng)畫的空間數(shù)據(jù)可視化。我很喜歡這個(gè)包,因?yàn)樗锩嬗幸恍┖?jiǎn)潔好用的示例。

geoplot看起來(lái)很完美,其中有一些很棒的例子,但是我和我們的學(xué)生都無(wú)法安裝它。鑒于我們大多數(shù)人都不使用conda,我們應(yīng)該注意這個(gè)警告 - “請(qǐng)謹(jǐn)慎使用,因?yàn)檫@可能不適用于Windows,并且可能無(wú)法在OSX和Linux上運(yùn)行?!?/p>

Cartopy和geopandas+matplotlib只生成靜態(tài)可視化,所有我還沒(méi)有嘗試過(guò)。

文本可視化

我們學(xué)習(xí)了很多關(guān)于各種文本可視化技術(shù)的知識(shí),例如標(biāo)簽云(tag clouds)(例如wordle),文檔散(docubursts),平行標(biāo)簽云(parallel tag clouds),短語(yǔ)網(wǎng)絡(luò)(phrase nets)和單詞樹(word trees),還介紹了主題探索和情感可視化技術(shù)。

不幸的是,除了word_cloud軟件包之外,對(duì)于想要在Python中實(shí)現(xiàn)單個(gè)文檔或大型文本集可視化的人來(lái)說(shuō),幾乎沒(méi)有其他選項(xiàng)。

Web的交互式數(shù)據(jù)可視化

當(dāng)前,Bokeh和Plot.ly Dash是創(chuàng)建允許多視圖刷選和過(guò)濾的交互式儀表盤的主要選擇。Bokeh的示例非常少,而Plot.ly Dash對(duì)慣于在Python中創(chuàng)建可視化的用戶來(lái)說(shuō)則非常重要。

Plot.ly Dash是基于Flask,Plotly.js和React.js構(gòu)建的,同時(shí)增加了創(chuàng)建同步多視點(diǎn)可視化的障礙。我班上的一些學(xué)生團(tuán)隊(duì)使用Plot.ly Dash完成期末項(xiàng)目,但他們學(xué)得非??臁R韵骆溄又惺且粋€(gè)關(guān)于Ryan Campa和Shikhar Gupta通過(guò)Dash實(shí)現(xiàn)TED演講數(shù)據(jù)集可視化的簡(jiǎn)單案例。

Altar會(huì)是理想的選擇嗎?

隨著課程的進(jìn)展,出現(xiàn)了一些關(guān)于Python 和Vega組合成為Altair的消息!我欣喜地得知我所使用的Vega來(lái)自UW Interactive Data Lab。Jim Vallandingam出色的“Altair簡(jiǎn)介”教程是一個(gè)很好的起點(diǎn)。

Altair的主要開發(fā)人員Jake VanderPlas最近發(fā)布了他的Python筆記本和PyCon 2018視頻的鏈接。我從那以后一直在玩它,我非常喜歡它!數(shù)據(jù)科學(xué)家們希望探索他們的數(shù)據(jù)并創(chuàng)建可視化圖形來(lái)從內(nèi)部和外部解釋它們。我希望它能滿足數(shù)據(jù)科學(xué)家的需求。

Altair示例庫(kù)中的交互式可視化示例集合

總結(jié)

數(shù)據(jù)科學(xué)家喜歡使用Python中的可視化庫(kù)和包,我希望像Altair這樣的工具就是最終的實(shí)現(xiàn)途徑。諸如plotly,seaborn,bokeh,geoplotlib等軟件包將繼續(xù)發(fā)展,并擁有更多功能。通過(guò)Python實(shí)現(xiàn)的交互式數(shù)據(jù)可視化(用于Web)將有一個(gè)更光明的未來(lái),我們期待這一天!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84068

原文標(biāo)題:基于 Python 實(shí)現(xiàn)交互式數(shù)據(jù)可視化的工具(用于 Web)

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)據(jù)可視化Python-matplotlib概述

    數(shù)據(jù)可視化(二):Python-matplotlib
    發(fā)表于 07-22 14:58

    python數(shù)據(jù)可視化的方法和代碼

    Python數(shù)據(jù)可視化匯總
    發(fā)表于 10-14 14:59

    Python數(shù)據(jù)可視化專家的七個(gè)秘密

    分享 Python數(shù)據(jù)可視化專家的七個(gè)秘密
    發(fā)表于 05-15 06:43

    python數(shù)據(jù)可視化之畫折線圖

    python數(shù)據(jù)可視化之畫折線圖,散點(diǎn)圖
    發(fā)表于 05-27 08:09

    Python數(shù)據(jù)可視化

    Python數(shù)據(jù)可視化:網(wǎng)易云音樂(lè)歌單
    發(fā)表于 07-19 08:30

    VR與三維可視化在電廠中的作用

    才會(huì)擁有的體驗(yàn)。智能培訓(xùn)模塊采用虛擬現(xiàn)實(shí)技術(shù),利用數(shù)字電廠的數(shù)據(jù),建立相應(yīng)的軟硬件平臺(tái),利用定制的電廠三維模型,方便快捷地實(shí)現(xiàn)三維展示或者VR體驗(yàn),提供安全的多用戶虛擬世界,通過(guò)交互式
    發(fā)表于 12-03 15:03

    華秋DFM可視化BOM交互焊接工具——SMT工廠、PCB工程師的福音來(lái)了!

    電絡(luò)鐵就搞定了,如果樣品幾塊板使用機(jī)器焊接,樣品的價(jià)值都還不夠開機(jī)器的費(fèi)用。為了提升手工焊接的工作效率及元器件焊接的正確率,華秋DFM推出了BOM清單與PCB圖交互可視化焊接工具。此工具
    發(fā)表于 12-23 10:59

    華秋DFM推出可視化BOM交互焊接工具,助力SMT工廠提升效率

    電絡(luò)鐵就搞定了,如果樣品幾塊板使用機(jī)器焊接,樣品的價(jià)值都還不夠開機(jī)器的費(fèi)用。為了提升手工焊接的工作效率及元器件焊接的正確率,華秋DFM推出了BOM清單與PCB圖交互可視化焊接工具。此工具
    發(fā)表于 12-23 11:16

    Python拉勾網(wǎng)數(shù)據(jù)采集與可視化

    本文是先采集拉勾網(wǎng)上面的數(shù)據(jù),采集的是Python崗位的數(shù)據(jù),然后用Python進(jìn)行可視化。主要涉及的是爬蟲&
    的頭像 發(fā)表于 03-13 14:18 ?3164次閱讀
    <b class='flag-5'>Python</b>拉勾網(wǎng)<b class='flag-5'>數(shù)據(jù)</b>采集與<b class='flag-5'>可視化</b>

    Python實(shí)現(xiàn)PLC數(shù)據(jù)可視化呈現(xiàn)于Web端

    現(xiàn)介紹另一種通過(guò)Python實(shí)現(xiàn)PLC數(shù)據(jù)可視化呈現(xiàn)于Web端的方案。
    的頭像 發(fā)表于 08-30 11:27 ?6828次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>實(shí)現(xiàn)</b>PLC<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>可視化</b>呈現(xiàn)于Web端

    Python數(shù)據(jù)可視化編程實(shí)戰(zhàn)

    Python數(shù)據(jù)可視化編程實(shí)戰(zhàn)資料免費(fèi)下載。
    發(fā)表于 06-01 14:37 ?29次下載

    交互式單線圖(SLD)實(shí)現(xiàn)工廠數(shù)據(jù)可視化

    對(duì)于基礎(chǔ)設(shè)施的可視化,所謂的“交互式單線圖”(SLD)是一個(gè)極好的工具。為此,建議使用SmartCollect SC2交互式單線圖中的各種選項(xiàng):
    發(fā)表于 09-22 10:43 ?818次閱讀

    使用Python構(gòu)建基于web應(yīng)用程序的交互式儀表板

    執(zhí)行端到端數(shù)據(jù)科學(xué)和分析管道的自由。將這兩個(gè)項(xiàng)目結(jié)合起來(lái),即使在單個(gè) GPU 上,也可以實(shí)現(xiàn)對(duì)數(shù)千兆字節(jié)數(shù)據(jù)集的實(shí)時(shí)、交互式可視化分析。
    的頭像 發(fā)表于 04-21 14:54 ?1322次閱讀

    使用Python來(lái)收集、處理和可視化人口數(shù)據(jù)

    如何使用Python這一流行的編程語(yǔ)言來(lái)收集、處理和可視化印度和中國(guó)的人口數(shù)據(jù)呢?本文將向你介紹一些基本的步驟和技巧,幫助你掌握Python進(jìn)行可視
    的頭像 發(fā)表于 06-21 17:08 ?1223次閱讀
    使用<b class='flag-5'>Python</b>來(lái)收集、處理和<b class='flag-5'>可視化</b>人口<b class='flag-5'>數(shù)據(jù)</b>

    如何實(shí)現(xiàn)三維地圖可視化交互系統(tǒng)

    三維地圖可視化 交互系統(tǒng)是一種基于三維地圖技術(shù)的交互式應(yīng)用程序,可以呈現(xiàn)地理信息和空間數(shù)據(jù)的立體展示,并提供用戶友好的
    的頭像 發(fā)表于 07-19 18:20 ?693次閱讀