本次分享10個(gè)適用于多個(gè)學(xué)科的Python數(shù)據(jù)可視化庫(kù),其中有名氣很大的也有鮮為人知的!
1、matplotlib
兩個(gè)直方圖
matplotlib 是Python可視化程序庫(kù)的泰斗。經(jīng)過(guò)十幾年它任然是Python使用者最常用的畫(huà)圖庫(kù)。它的設(shè)計(jì)和在1980年代被設(shè)計(jì)的商業(yè)化程序語(yǔ)言MATLAB非常接近。
由于 matplotlib 是第一個(gè) Python 可視化程序庫(kù),有許多別的程序庫(kù)都是建立在它的基礎(chǔ)上或者直接調(diào)用它。
比如pandas和Seaborn就是matplotlib的外包,它們讓你能用更少的代碼去調(diào)用 matplotlib的方法。
雖然用 matplotlib 可以很方便的得到數(shù)據(jù)的大致信息,但是如果要更快捷簡(jiǎn)單地制作可供發(fā)表的圖表就不那么容易了。
就像Chris Moffitt 在“Python可視化工具簡(jiǎn)介”中提到的一樣:“功能非常強(qiáng)大,也非常復(fù)雜?!?/p>
matplotlib 那有著強(qiáng)烈九十年代氣息的默認(rèn)作圖風(fēng)格也是被吐槽多年。即將發(fā)行的matplotlib 2.0 號(hào)稱會(huì)包含許多更時(shí)尚的風(fēng)格。
2、Seaborn
Violinplot (Michael Waskom)
Seaborn利用了matplotlib,用簡(jiǎn)潔的代碼來(lái)制作好看的圖表。
Seaborn跟matplotlib最大的區(qū)別就是它的默認(rèn)繪圖風(fēng)格和色彩搭配都具有現(xiàn)代美感。
由于Seaborn是構(gòu)建在matplotlib的基礎(chǔ)上的,你需要了解matplotlib從而來(lái)調(diào)整Seaborn的默認(rèn)參數(shù)。
3、ggplot
Small multiples (?hat)
ggplot 基于R的一個(gè)作圖包 ggplot2, 同時(shí)利用了源于 《圖像語(yǔ)法》(The Grammar of Graphics)中的概念。
ggplot 跟 matplotlib 的不同之處是它允許你疊加不同的圖層來(lái)完成一幅圖。比如你可以從軸開(kāi)始,然后加上點(diǎn),加上線,趨勢(shì)線等等。
雖然《圖像語(yǔ)法》得到了“接近思維過(guò)程”的作圖方法的好評(píng),但是習(xí)慣了matplotlib的用戶可能需要一些時(shí)間來(lái)適應(yīng)這個(gè)新思維方式。
ggplot的作者提到 ggplot 并不適用于制作非常個(gè)性化的圖像。它為了操作的簡(jiǎn)潔而犧牲了圖像復(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í)候,最好將你的數(shù)據(jù)讀成 DataFrame。
4、Bokeh
Interactive weather statistics for three cities (Continuum Analytics)
跟ggplot一樣, Bokeh 也是基于《圖形語(yǔ)法》的概念。
但是跟ggplot不一樣的是,它完全基于Python而不是從R引用過(guò)來(lái)的。
它的長(zhǎng)處在于它能用于制作可交互,可直接用于網(wǎng)絡(luò)的圖表。圖表可以輸出為JSON對(duì)象,HTML文檔或者可交互的網(wǎng)絡(luò)應(yīng)用。
Boken也支持?jǐn)?shù)據(jù)流和實(shí)時(shí)數(shù)據(jù)。Bokeh為不同的用戶提供了三種控制水平。
最高的控制水平用于快速制圖,主要用于制作常用圖像, 例如柱狀圖,盒狀圖,直方圖。
中等控制水平跟matplotlib一樣允許你控制圖像的基本元素(例如分布圖中的點(diǎn))。
最低的控制水平主要面向開(kāi)發(fā)人員和軟件工程師。
它沒(méi)有默認(rèn)值,你得定義圖表的每一個(gè)元素。
5、pygal
Box plot (Florian Mounier)
pygal 跟 Bokeh 和 Plotly 一樣,提供可直接嵌入網(wǎng)絡(luò)瀏覽器的可交互圖像。
跟其他兩者的主要區(qū)別在于它可以將圖表輸出為SVG格式。
如果你的數(shù)據(jù)量相對(duì)小,SVG就夠用了。但是如果你有成百上千的數(shù)據(jù)點(diǎn),SVG的渲染過(guò)程會(huì)變得很慢。
由于所有的圖表都被封裝成了方法,而且默認(rèn)的風(fēng)格也很漂亮,用幾行代碼就可以很容易地制作出漂亮的圖表。
6、Plotly
Line plot (Plotly)
你也許聽(tīng)說(shuō)過(guò)在線制圖工具Plotly,但是你知道你可以通過(guò)Python使用它么?
Plotly 跟 Bokeh 一樣致力于交互圖表的制作,但是它提供在別的庫(kù)中很難找到的幾種圖表類型,比如等值線圖,樹(shù)形圖和三維圖表。
7、geoplotlib
Choropleth (Andrea Cuttone)
geoplotlib 是一個(gè)用于制作地圖和地理相關(guān)數(shù)據(jù)的工具箱。
你可以用它來(lái)制作多種地圖,比如等值區(qū)域圖, 熱度圖,點(diǎn)密度圖。
你必須安裝 Pyglet (一個(gè)面向?qū)ο?a target="_blank">編程接口)來(lái)使用geoplotlib。不過(guò)因?yàn)榇蟛糠諴ython的可視化工具不提供地圖,有一個(gè)專職畫(huà)地圖的工具也是挺方便的。
8、Gleam
Scatter plot with trend line (David Robinson)
Gleam 借用了R中 Shiny 的靈感。它允許你只利用 Python 程序?qū)⒛愕姆治鲎兂煽山换サ木W(wǎng)絡(luò)應(yīng)用,你不需要會(huì)用HTML CSS 或者 JaveScript。
Gleam 可以使用任何一種 Python 的可視化庫(kù)。
當(dāng)你創(chuàng)建一個(gè)圖表的時(shí)候,你可以在上面加上一個(gè)域,這樣用戶可以用它來(lái)對(duì)數(shù)據(jù)排序和過(guò)濾了。
9、missingno
Nullity matrix (Aleksey Bilogur)
缺失數(shù)據(jù)是永遠(yuǎn)的痛。
missingno 用圖像的方式讓你能夠快速評(píng)估數(shù)據(jù)缺失的情況,而不是在數(shù)據(jù)表里面步履維艱。
你可以根據(jù)數(shù)據(jù)的完整度對(duì)數(shù)據(jù)進(jìn)行排序或過(guò)濾,或者根據(jù)熱度圖或樹(shù)狀圖來(lái)考慮對(duì)數(shù)據(jù)進(jìn)行修正。
10、Leather
Chart grid with consistent scales (Christopher Groskopf)
Leather的最佳定義來(lái)自它的作者 Christopher Groskopf。
“Leather 適用于現(xiàn)在就需要一個(gè)圖表并且對(duì)圖表是不是完美并不在乎的人?!?/p>
它可以用于所以的數(shù)據(jù)類型然后生成SVG圖像,這樣在你調(diào)整圖像大小的時(shí)候就不會(huì)損失圖像質(zhì)量。
審核編輯:劉清
-
控制器
+關(guān)注
關(guān)注
112文章
16332瀏覽量
177812 -
HTML
+關(guān)注
關(guān)注
0文章
278瀏覽量
35211 -
MATLAB仿真
+關(guān)注
關(guān)注
4文章
176瀏覽量
19922 -
SVG
+關(guān)注
關(guān)注
0文章
127瀏覽量
16408 -
python
+關(guān)注
關(guān)注
56文章
4792瀏覽量
84628
原文標(biāo)題:Python那些優(yōu)質(zhì)可視化工具!
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論