瀏覽一下Python程序庫目錄你會發(fā)現(xiàn)無論要畫什么圖,都能找到相對的庫——從適用于眼球移動研究的GazeParser,到用于可視化實時神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程的pastalog。有許多庫只完成非常特定的任務(wù),也有許多可以用于更廣泛的領(lǐng)域。 今天我們會介紹一下10個適用于多個學(xué)科的Python數(shù)據(jù)可視化庫,其中有名氣很大的也有鮮為人知的。在這里我們提醒一下大家如果想輕松的在本地運行Python,可以使用Mode Python Notebooks。 matplotlib 兩個直方圖 matplotlib 是Python可視化程序庫的泰斗。經(jīng)過十幾年它任然是Python使用者最常用的畫圖庫。它的設(shè)計和在1980年代被設(shè)計的商業(yè)化程序語言MATLAB非常接近。 由于 matplotlib 是第一個 Python 可視化程序庫,有許多別的程序庫都是建立在它的基礎(chǔ)上或者直接調(diào)用它。比如pandas和Seaborn就是matplotlib的外包,它們讓你能用更少的代碼去調(diào)用 matplotlib的方法。 雖然用matplotlib可以很方便的得到數(shù)據(jù)的大致信息,但是如果要更快捷簡單地制作可供發(fā)表的圖表就不那么容易了。就像Chris Moffitt 在“Python可視化工具簡介”中提到的一樣:“功能非常強(qiáng)大,也非常復(fù)雜。” matplotlib 那有著強(qiáng)烈九十年代氣息的默認(rèn)作圖風(fēng)格也是被吐槽多年。即將發(fā)行的matplotlib 2.0 號稱會包含許多更時尚的風(fēng)格。 開發(fā)者:John D. Hunter, 資源:Mode 更多資料:matplotlib.org Try matplotlib in Mode. Seaborn Violinplot (Michael Waskom) Seaborn利用了matplotlib,用簡潔的代碼來制作好看的圖表。Seaborn跟matplotlib最大的區(qū)別就是它的默認(rèn)繪圖風(fēng)格和色彩搭配都具有現(xiàn)代美感。由于Seaborn是構(gòu)建在matplotlib的基礎(chǔ)上的,你需要了解matplotlib從而來調(diào)整Seaborn的默認(rèn)參數(shù)。 開發(fā)者: Michael Waskom, 資源 Mode 更多資料: http://web./~mwaskom/software/seaborn/index.html Try Seaborn in Mode. ggplot Small multiples (?hat) ggplot 基于R的一個作圖包 ggplot2, 同時利用了源于 《圖像語法》(The Grammar of Graphics)中的概念。ggplot 跟 matplotlib 的不同之處是它允許你疊加不同的圖層來完成一幅圖。比如你可以從軸開始,然后加上點,加上線,趨勢線等等。雖然《圖像語法》得到了“接近思維過程”的作圖方法的好評,但是習(xí)慣了matplotlib的用戶可能需要一些時間來適應(yīng)這個新思維方式。 ggplot的作者提到 ggplot 并不適用于制作非常個性化的圖像。它為了操作的簡潔而犧牲了圖像復(fù)雜度。 ggplot is tightly integrated with pandas, so it’s best to store your data in a DataFrame when using ggplot. ggplot跟pandas的整合度非常高,所以當(dāng)你使用它的時候,最好將你的數(shù)據(jù)讀成 DataFrame。 開發(fā)者: ?hat 更多資料: http://ggplot./ Bokeh Interactive weather statistics for three cities (Continuum Analytics) 跟ggplot一樣, Bokeh 也是基于《圖形語法》的概念。但是跟ggplot不一樣的是,它完全基于Python而不是從R引用過來的。它的長處在于它能用于制作可交互,可直接用于網(wǎng)絡(luò)的圖表。圖表可以輸出為JSON對象,HTML文檔或者可交互的網(wǎng)絡(luò)應(yīng)用。Boken也支持?jǐn)?shù)據(jù)流和實時數(shù)據(jù)。 Bokeh為不同的用戶提供了三種控制水平。最高的控制水平用于快速制圖,主要用于制作常用圖像, 例如柱狀圖,盒狀圖,直方圖。中等控制水平跟matplotlib一樣允許你控制圖像的基本元素(例如分布圖中的點)。最低的控制水平主要面向開發(fā)人員和軟件工程師。它沒有默認(rèn)值,你得定義圖表的每一個元素。 開發(fā)者: Continuum Analytics 更多資料: http://bokeh./en/latest/ pygal Box plot (Florian Mounier) pygal 跟 Bokeh 和 Plotly 一樣,提供可直接嵌入網(wǎng)絡(luò)瀏覽器的可交互圖像。跟其他兩者的主要區(qū)別在于它可以將圖表輸出為SVG格式。如果你的數(shù)據(jù)量相對小,SVG就夠用了。但是如果你有成百上千的數(shù)據(jù)點,SVG的渲染過程會變得很慢。 由于所有的圖表都被封裝成了方法,而且默認(rèn)的風(fēng)格也很漂亮,用幾行代碼就可以很容易地制作出漂亮的圖表。 開發(fā)者: Florian Mounier 更多資料: http://www./en/latest/index.html Plotly Line plot (Plotly) 你也許聽說過在線制圖工具Plotly,但是你知道你可以通過Python notebook使用它么?Plotly 跟 Bokeh 一樣致力于交互圖表的制作,但是它提供在別的庫中很難找到的幾種圖表類型,比如等值線圖,樹形圖和三維圖表。 開發(fā)者: Plotly, 資源 Mode 更多資料: https:///python/ Try Plotly in Mode. geoplotlib Choropleth (Andrea Cuttone) geoplotlib 是一個用于制作地圖和地理相關(guān)數(shù)據(jù)的工具箱。你可以用它來制作多種地圖,比如等值區(qū)域圖, 熱度圖,點密度圖。你必須安裝 Pyglet (一個面向?qū)ο缶幊探涌冢﹣硎褂胓eoplotlib。 不過因為大部分Python的可視化工具不提供地圖,有一個專職畫地圖的工具也是挺方便的。 開發(fā)者: Andrea Cuttone 更多資料: https://github.com/andrea-cuttone/geoplotlib Gleam Scatter plot with trend line (David Robinson) Gleam 借用了R中 Shiny 的靈感。 它允許你只利用 Python 程序?qū)⒛愕姆治鲎兂煽山换サ木W(wǎng)絡(luò)應(yīng)用,你不需要會用HTML CSS 或者 JaveScript。Gleam 可以使用任何一種 Python 的可視化庫。當(dāng)你創(chuàng)建一個圖表的時候,你可以在上面加上一個域,這樣用戶可以用它來對數(shù)據(jù)排序和過濾了。 開發(fā)者: David Robinson 更多資料: https://github.com/dgrtwo/gleam missingno Nullity matrix (Aleksey Bilogur) 缺失數(shù)據(jù)是永遠(yuǎn)的痛。missingno 用圖像的方式讓你能夠快速評估數(shù)據(jù)缺失的情況,而不是在數(shù)據(jù)表里面步履維艱。你可以根據(jù)數(shù)據(jù)的完整度對數(shù)據(jù)進(jìn)行排序或過濾,或者根據(jù)熱度圖或樹狀圖來考慮對數(shù)據(jù)進(jìn)行修正。 開發(fā)者: Aleksey Bilogur 更多資料: https://github.com/ResidentMario/missingno Leather Chart grid with consistent scales (Christopher Groskopf) Leather的最佳定義來自它的作者 Christopher Groskopf:“Leather 適用于現(xiàn)在就需要一個圖表并且對圖表是不是完美并不在乎的人?!彼梢杂糜谒缘臄?shù)據(jù)類型然后生成SVG圖像,這樣在你調(diào)整圖像大小的時候就不會損失圖像質(zhì)量。這個庫很新,一些文檔還沒有最后完成。圖像成品非?;A(chǔ)——但是這就是設(shè)計目標(biāo)。 開發(fā)者: Christopher Groskopf 更多資料: http://leather./en/latest/index.html 更多關(guān)于 Python 可視化工具的精彩文章 網(wǎng)絡(luò)上有許多關(guān)于 Python 可視化工具的評測,下面是推薦文章:
數(shù)據(jù)分析網(wǎng)(www.afenxi.com),國內(nèi)領(lǐng)先的大數(shù)據(jù)門戶,旨在幫助大數(shù)據(jù)從業(yè)人士、愛好者提供大數(shù)據(jù)新聞資訊、前沿技術(shù)、業(yè)界觀點的信息平臺。 |
|