python基于web可視化_獨家 | 基于Python實現交互式數據可視化的工具(用于Web)

轉自:數據派ID:datapi

作者:Alark Joshi

翻譯:陳雨琳

校對:吳金笛

本文2200字,建議閱讀8分鐘。

本文將介紹實現數據可視化的軟件包。

這學期(2018學年春季學期)我教授了一門關于數據可視化的數據科學碩士課程。我們的數據科學碩士項目是一個為期15個月的強化項目,這個項目已經成功地培養了許多優秀的數據科學家。

該項目的學生背景多元,并且他們在上這門課前都對R和Python有了很深入的理解。通過各種課程的學習,他們已經能夠熟練使用ggplot2和matplotlib,為學習大型多變量數據可視化打下了基礎。

作為一個數據可視化的研究者,我想要介紹所有那些在數據可視化領域涌現的絕妙技術。因此,我的課程的其中一部分將會是基于研究論文,在線可視化和d3示例的講座。

Python中的數據可視化

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

鑒于我自己對Python的熱愛和Python給學生帶來的舒適體驗,我決定向他們介紹Python中神奇的(我希望是的!)軟件包,它們可以實現所有我向學生展示的內容。

Seaborn的靜態可視化

鑒于我過去使用seaborn的經驗,我很高興能夠向學生介紹seaborn產生的美麗的可視化圖案。 他們已經有了使用matplotlib的經驗,所以學習seaborn時很容易,且優勢巨大。 學生能夠制作散點圖(雙變量和多變量),swarmplots,小提琴圖,條形圖,箱形圖和帶有刻面的直方圖。他們了解到,使用大型數據集生成swarmplots非常耗時,而基于摘要的圖(如小提琴圖)是更好的選擇。

Seaborn中的可視化技術示例

用Bokeh或Plot.ly實現交互式可視化

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

使用plot.ly創建的可視化示例

圖片來源:PolicyViz

Bokeh中的交互式可視化

圖片來源:Christine Doig

可視化樹,圖和網絡

在討論分層數據可視化的技術時,我很高興地展示樹狀圖可視化技術,并將其與節點鏈接圖進行了比較。遺憾的是,當我深入挖掘時,卻沒有找到實現多級樹狀圖的方法L 即使在導入了squarify庫之后,你也只能在Python中生成一個一級樹狀圖!

使用squarify包只能生成一級樹圖

圖片來源:The Python Graph Gallery

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

地學可視化

鑒于創建交互式映射圖是數據可視化的重要組成部分,我對于找到能夠創建等值區域圖(choropleth maps),符號圖(symbol maps),統計圖(cartograms),交通圖(transit maps)甚至流向圖(flow maps)的軟件包更有信心。以下是我在Python中發現的地學可視化庫:Plot.ly允許您創建等值區域圖和符號圖,但幾乎無法控制圖的創建過程。

geoplotlib是一個小巧好用的軟件包,它建立在pyglet上,但它有點不穩定,經常崩潰。它使用OpenStreetMap圖塊,甚至允許基于動畫的空間數據可視化。我很喜歡這個包,因為它里面有一些簡潔好用的示例。

geoplot看起來很完美,其中有一些很棒的例子,但是我和我們的學生都無法安裝它。鑒于我們大多數人都不使用conda,我們應該注意這個警告 - “請謹慎使用,因為這可能不適用于Windows,并且可能無法在OSX和Linux上運行。”

Cartopy和geopandas+matplotlib只生成靜態可視化,所有我還沒有嘗試過。

文本可視化

我們學習了很多關于各種文本可視化技術的知識,例如標簽云(tag clouds)(例如wordle),文檔散(docubursts),平行標簽云(parallel tag clouds),短語網絡(phrase nets)和單詞樹(word trees),還介紹了主題探索和情感可視化技術。

不幸的是,除了word_cloud軟件包之外,對于想要在Python中實現單個文檔或大型文本集可視化的人來說,幾乎沒有其他選項。

Web的交互式數據可視化

當前,Bokeh和Plot.ly Dash是創建允許多視圖刷選和過濾的交互式儀表盤的主要選擇。Bokeh的示例非常少,而Plot.ly Dash對慣于在Python中創建可視化的用戶來說則非常重要。

Plot.ly Dash是基于Flask,Plotly.js和React.js構建的,同時增加了創建同步多視點可視化的障礙。我班上的一些學生團隊使用Plot.ly Dash完成期末項目,但他們學得非常快。以下鏈接中是一個關于Ryan Campa和Shikhar Gupta通過Dash實現TED演講數據集可視化的簡單案例。http://campa-gupta.herokuapp.com/

Altar會是理想的選擇嗎?

隨著課程的進展,出現了一些關于Python 和 Vega組合成為Altair的消息!我欣喜地得知我所使用的Vega來自UW Interactive Data Lab。Jim Vallandingam出色的“Altair簡介”教程是一個很好的起點。

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

Altair示例庫中的交互式可視化示例集合

圖片來源:Altair Gallery

總結

數據科學家喜歡使用Python中的可視化庫和包,我希望像Altair這樣的工具就是最終的實現途徑。諸如plotly,seaborn,bokeh,geoplotlib等軟件包將繼續發展,并擁有更多功能。通過Python實現的交互式數據可視化(用于Web)將有一個更光明的未來,我們期待這一天!

致謝

感謝Sophie Engle教授提供的講座筆記,讓我在整個學期的講課都很順利。感謝Shirley Wu和Robert Gove為早期的草稿提供了極有價值的反饋。

原文標題:

We need more Interactive Data Visualization tools (for the Web) in Python

原文鏈接:

https://medium.com/@alark/we-need-more-interactive-data-visualization-tools-for-the-web-in-python-ad80ec3f440e

譯者簡介

陳雨琳,清華大學大二在讀,英語專業。專業學習之外喜歡學些數學、計算機類課程,被數據和模型的魅力所吸引,希望未來能往這個方向發展。道阻且長,行則將至。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370697.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370697.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370697.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SASS簡介及使用方法

一、什么是Sass Sass (Syntactically Awesome StyleSheets)是css的一個擴展開發工具,它允許你使用變量、條件語句等,使開發更簡單可維護。這里是官方文檔。 二、基本語法 1)變量 sass的變量名必須是一個$符號開頭,后面緊跟變量名…

【轉】Java方向如何準備BAT技術面試答案(匯總版)

原文地址:http://www.jianshu.com/p/1f1d3193d9e3 這個主題的內容之前分三個篇幅分享過,導致網絡上傳播的比較分散,所以本篇做了一個匯總,同時對部分內容及答案做了修改,歡迎朋友們吐槽、轉發。因為篇幅長度和時間的原…

numpy維度交換_“lazy”的transpose()函數——從numpy 數組的內存布局講起

1 數組的兩種內存布局方式行優先與列優先首先我們回顧一下,矩陣數據在內存中的兩種布局方式:行優先(row-major):以行為優先單位,在內存中逐行存儲/讀取;對于多維,意味著當線性掃描內…

云耀服務器切換系統,【計算】云耀服務器-常見操作匯總指南

通過上期的介紹,相信大家對于云耀云服務器的基本知識有了一個了解。云耀云服務器是一個具備獨立、完整的操作系統和網絡功能,可快速搭建簡單應用的新一代云服務器。接下來,本期為大家帶來關于云耀云服務器使用中的一些簡單方法和小技巧。1.云…

機器學習應該準備哪些數學預備知識?

轉 https://www.zhihu.com/question/36324957 https://www.zhihu.com/question/36324957/answer/139408269 機器學習應該準備哪些數學預備知識? 數據分析師,工作中經常使用機器學習模型,但是以調庫為主。 自己一直也在研究算法,也…

react usecontext_Vue3原理實戰運用,我用40行代碼把他裝進了React做狀態管理

前言vue-next是Vue3的源碼倉庫,Vue3采用lerna做package的劃分,而響應式能力vue/reactivity被劃分到了單獨的一個package中。如果我們想把它集成到React中,可行嗎?來試一試吧。使用示例話不多說,先看看怎么用的解解饞吧…

Spring MVC –自定義RequestMappingHandlerMapping

在xml bean定義文件中使用<mvc&#xff1a;annotation-driven />配置Spring MVC時&#xff0c;在內部將一個名為RequestMappingHandlerMapping的組件注冊到Spring MVC。 該組件或通常是HandlerMapping組件負責將請求URI路由到處理程序&#xff0c;這些處理程序是使用Requ…

css的三個特性 背景透明設置

關于行內元素&#xff08;補充一點&#xff09; 行內元素只能容納文本或其他行內元素。&#xff08;a特殊a里面可以放塊級元素&#xff09; 例子&#xff1a; 關于行高tip: 選擇器的嵌套層級不應大于3級&#xff0c;位置靠后的限定條件應盡可能的精確。 屬性定義必須另起一行…

比較容易犯的一些智障錯誤(不定時修改)

無論在什么學習中&#xff0c;在成長的過程中&#xff0c;注定要犯一些錯誤&#xff0c;有些比較高級的錯誤&#xff0c;有些是比較智障的錯誤。那么在oi的學習中&#xff0c;我們最討厭的就是一些智障的小錯誤&#xff0c;因為如果是大錯誤的話一般情況下在測試樣例的時候都是…

ccs安裝多版本編譯器離線_大數據分析:學習工具JDK,在線安裝指南

hadoop是使用Java語言開發的并且Hadoop運行需要有Java環境的支持&#xff0c;因此在安裝hadoop之前需要安裝Java開發環境即JDK(Java Development Kit)。安裝前首先向大家介紹以一下本文會用到的幾個詞&#xff1a;JAVA_HOME:一是為了方便引用&#xff0c;比如&#xff0c;JDK安…

HTML基礎入門學習準備篇

在學習前端的開始&#xff0c;讓我們一起來了解什么是HTML5時代的大前端開發和全棧開發的定義傳統的前端&#xff1a;切圖-標簽和樣式-實現效果H5時代的前端&#xff1a;一、需要各端的兼容開發二、可以用于APP開發和移動站點的開發三、Ajax服務器端技術開發四、高級設計模式和…

asp.net尚未在web服務器上注冊_最新版Web服務器項目詳解 00 項目概述

點 擊 關 注 上 方&#xff02;兩猿社&#xff02;設 為&#xff02;置 頂 或 星 標&#xff02;&#xff0c;干 貨 第 一 時 間 送 達。互 聯 網 猿 | 兩 猿 社TineyWebServerLinux下C輕量級Web服務器&#xff0c;助力初學者快速實踐網絡編程&#xff0c;搭建屬于自己的服務器…

python正則r的作用_Python正則表達式,這一篇就夠了!

原標題&#xff1a;Python正則表達式&#xff0c;這一篇就夠了&#xff01;大多數編程語言的正則表達式設計都師從Perl&#xff0c;所以語法基本相似&#xff0c;不同的是每種語言都有自己的函數去支持正則&#xff0c;今天我們就來學習 Python中關于 正則表達式的函數。re模塊…

服務器微信了早上好,每天早上好的問候語 微信早安問候語合集66句

1、沒有傘的孩子&#xff0c;必須努力奔跑&#xff01;早安&#xff01;2、你不能改變過去&#xff0c;但你可以改變未來。早安&#xff01;3、堅持了才叫夢想&#xff0c;放棄了就只是妄想。早安&#xff01;4、忘掉失敗&#xff0c;不過要牢記失敗中的教訓。早安&#xff01;…

如何得到某個文件的舊版本

下載某個文件的舊版本 如果想要得到某個文件的舊版本&#xff0c;只需在該文件上單擊右鍵&#xff0c;選擇Updata to revision…即可。 系統會提示輸入版本號。 例如要下載soc_1的第五個版本&#xff0c;只需填入5即可。如圖7。 查看完版本5的文件后&#xff0c;如果想在此回到…

Google Guava EventBus和Java 7 WatchService用于事件編程

這篇文章將介紹如何使用Guava EventBus將更改發布到Java 7 WatchService檢測到的目錄或子目錄中。 Guava EventBus是向應用程序添加發布/訂閱通信的好方法。 Java 7 java.nio.file軟件包中新增的WatchService用于監視目錄中的更改。 由于EventBus和WatchService已在以前的文章中…

Bootstrap-table 部分瀏覽器顯示不出來

一、問題 近日&#xff0c;寫了一個ASP.Net項目&#xff0c;但是bootstrap-table在別人的電腦上顯示不出來&#xff0c;在自己的電腦上能顯示&#xff0c;有些瀏覽器也是能顯示&#xff0c;但部分瀏覽器就是顯示不出來。找了很多原因&#xff0c;最后有個老師和我說是內核版本的…

DBMS-基本概念

文件處理系統&#xff08;file-processing system&#xff09;的主要弊端&#xff1a; 數據冗余和不一致&#xff08;data redundancy and inconsistency&#xff09;、數據訪問困難&#xff08;difficulty in accessing data&#xff09;、數據孤立&#xff08;data isolation…

python多大孩子可以學_孩子學編程最佳年齡是多大

兒童編程教育已經悄悄地掀起了編程低齡化的熱浪。但是很多人會疑惑&#xff0c;到底孩子學編程最佳年齡是多少呢&#xff1f;下面小編就為大家解答一下。孩子學編程最佳年齡 首先&#xff0c;孩子的學習黃金時期是非常重要的。從6歲開始&#xff0c;大多數孩子都可以掌握對基本…

上傳文件到華為云云服務器,上傳文件到云服務器

上傳文件到云服務器 內容精選換一換登錄Windows操作系統的彈性云服務器時&#xff0c;需使用密碼方式登錄。因此&#xff0c;用戶需先根據創建彈性云服務器時使用的密鑰文件&#xff0c;獲取該彈性云服務器初始安裝時系統生成的管理員密碼(Administrator帳戶或Cloudbase-init設…