Day11 Python系列之數(shù)據(jù)可視化,看這篇就夠了

01

無處不在的數(shù)據(jù)可視化

提到數(shù)據(jù)可視化,大家可能腦海里就會出現(xiàn)里各種圖表、絢麗大屏、或者科幻電影里酷炫儀表。其實,日常生活里面,到處都有數(shù)據(jù)可視化的影子。

image

手表就是數(shù)據(jù)可視化的例子,最少只需要3個視覺元素(時針、分針和秒針),就可以表達43200個狀態(tài)。另外,水銀溫度計和地鐵線路圖,也是生活中數(shù)據(jù)可視化的運用!

02

為什么需要數(shù)據(jù)可視化?

視覺是人類獲取外界信息最高速,最主要也是最重要渠道。 超過50%的人腦功能用于視覺感知,而大腦接收到的信息 90% 來自視覺,人類利用視覺獲取和處理的信息量,遠遠超出其他途徑。

image

視覺的信息帶寬是最大的,其次是觸覺和聽覺。

人類大腦處理圖像的速度比文本快 6 萬倍。所謂的“可視化”,就是利用人類視覺化的思考能力,對數(shù)據(jù)進行可視表達以增強認知的技術。

03

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

說到python的常見應用,很多人會想到python的數(shù)據(jù)分析,作為數(shù)據(jù)分析中的表現(xiàn)層面,數(shù)據(jù)可視化都是其中必不可少的部分。但本文并非只推薦無任何數(shù)據(jù)分析需求僅需要做漂亮可視化圖表的人學習python數(shù)據(jù)可視化。本文介紹的只是一些常見的python第三方庫,畢竟作為一個工具來說,這些第三方庫使用起來并不是非常方便,也有一定的學習成本,普通的可視化推薦使用excel、wps,有條件的可以使用各種BI工具如:tableau,powerBI等。

那什么情況下需要用到python數(shù)據(jù)可視化庫呢?

如果是在某些特定場景中,需要用到python做數(shù)據(jù)分析,輸出各種圖表用于輔助分析或者數(shù)據(jù)報告展示,那這些庫則顯得必不可少,接下來將介紹一些如何學習的方法和第三方庫的介紹:

比如選擇一款合適的庫,先了解各種庫的特點,選擇合適的庫,然后學習繪圖原理,掌握的知識點

選擇官網(wǎng)是最省錢和系統(tǒng)的學習的最佳路徑,至于效率方面見仁見智。選擇書籍或視頻的方式也未嘗不可。

  • 了解幾大常用的可視化庫,比如特性、使用場景、效果圖等;

  • 選擇一款適合自己的第三方庫,比如要做國內(nèi)地圖類的項目,選擇pyecharts;

  • 學習該庫的繪圖原理,各種函數(shù)調(diào)用和參數(shù)修改,就是所謂的"調(diào)參";

  • 不斷練習、練習、練習;

推薦學習使用的開發(fā)工具:JupyterNotebook。在數(shù)據(jù)分析和可視化的應用中,jupyter無疑是首選,相比其他如pycharm等工具,可以將每一步的可視化圖表輸出在同一頁面中,方便比較分析。

image.gif

04

可視化庫介紹

- 1 -

Matplotlib

官方文檔地址

https://matplotlib.org/2.0.2/index.html

Gallery****畫廊地址

https://matplotlib.org/2.0.2/gallery.html

image.gif

matplotlib是Python數(shù)據(jù)可視化庫的OG。盡管它已有十多年的歷史,但仍然是Python社區(qū)中使用最廣泛的繪圖庫。它的設計與MATLAB非常相似,MATLAB是20世紀80年代開發(fā)的專有編程語言。通常在python數(shù)據(jù)分析的教程中經(jīng)常會包含該庫的學習。

基礎講解:使用matplotlib繪圖的原理,主要就是理解figure(畫布)、axes(坐標系)、axis(坐標軸)三者之間的關系。

步驟:創(chuàng)建figure圖形對象-> 獲取對應位置的axes坐標系對象->調(diào)用axes對象,進行對應位置的圖形繪制->顯示圖形。下圖是幫助我們理解figure和axes的關系。

image.gif

- 2 -

Seaborn

官方文檔地址

https://seaborn.pydata.org/tutorial.html

Gallery****畫廊地址

https://seaborn.pydata.org/examples/index.html

image.gif

Seaborn利用matplotlib的強大功能,可以只用幾行代碼就創(chuàng)建漂亮的圖表。關鍵區(qū)別在于Seaborn的默認款式和調(diào)色板設計更加美觀和現(xiàn)代。由于Seaborn是在matplotlib之上構建的一個更高級的庫,因此還需要了解matplotlib以便調(diào)整Seaborn的默認值,所以在matplotlib上的調(diào)參也可以在Seaborn上面使用。Seaborn針對的點主要是數(shù)據(jù)挖掘和機器學習中的變量特征選取,seaborn可以用短小的代碼去繪制描述更多維度數(shù)據(jù)的可視化效果圖。

基礎講解:原理比較簡單,主要是通過sns對象調(diào)用各種類型表格的函數(shù),這里舉一個例子:

import numpy as np
image.gif

- 3 -

Pyecharts

官方文檔地址

https://pyecharts.org/

Gallery****畫廊地址

http://gallery.pyecharts.org/#/README

image.gif

Echarts 是一個由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設計,得到了眾多開發(fā)者的認可。而 Python 是一門富有表達力的語言,很適合用于數(shù)據(jù)處理。當數(shù)據(jù)分析遇上數(shù)據(jù)可視化時,pyecharts 誕生了。

這是國人開發(fā)的一個Echarts與Python結合的輪子,可以結合JavaScript等前端技術定制我們要的主題風格,功能非常強大,也是數(shù)據(jù)可視化非常常用的一個工具,也是比較推薦新手學習的。

基礎講解: 選擇圖表類型-> 聲明圖形類并添加數(shù)據(jù),比如添加x軸和y軸的數(shù)據(jù)->選擇全局變量set_global_opts,設置參數(shù)->顯示及保存圖表;

from pyecharts.charts import Bar
image.gif

注:各種不同的圖表輸入的數(shù)據(jù)格式會有所不同,導致部分復雜圖表的設置難度較大。

- 4 -

**ggplot **

官方文檔地址

http://ggplot.yhathq.com/

image.gif

ggplot基于ggplot2,一個 R 語言繪圖系統(tǒng),以及The Grammar of Graphics的概念。ggplot的運行方式與matplotlib不同:它允許你對組件進行分層以創(chuàng)建完整的繪圖。例如,你可以從軸開始畫,然后添加點,然后是線、趨勢線等。雖然圖形語法被稱為繪圖的“直觀”方法,但經(jīng)驗豐富的matplotlib用戶可能需要時間來適應這個新的方式。

- 5 -

**Bokeh **

官方文檔地址

https://docs.bokeh.org/en/latest/

Gallery畫廊地址

https://docs.bokeh.org/en/latest/docs/gallery.html

image.gif

與ggplot一樣,Bokeh同樣基于The Grammar of Graphics,但與ggplot不同的是,它是原生Python的,而不是從R語言移植過來的。它的優(yōu)勢在于能夠創(chuàng)建交互式的網(wǎng)站圖,它可以很容易地輸出為JSON對象、HTML或交互式Web應用程序。Bokeh還支持流媒體和實時數(shù)據(jù)。

- 6 -

**Pygal **

官方文檔地址

http://www.pygal.org/en/stable/

image.gif

與Bokeh和Plotly一樣,pygal提供可以嵌入Web瀏覽器的交互式圖。它的主要區(qū)別在于能夠將圖表輸出為SVG格式。如果你使用較小的數(shù)據(jù)集,SVG格式的圖像就可以了。但是如果制作的圖表包含數(shù)十萬個數(shù)據(jù)點,它們就會很難渲染并變得反應遲鈍。

- 7 -

**Plotly **

官方文檔地址

https://plotly.com/

image.gif

你可能知道Plotly是一個數(shù)據(jù)可視化的在線平臺,但你是否也知道可以從Python筆記本使用它的功能?與Bokeh一樣,Plotly的強項正在制作交互式圖,但它提供了一些在大多數(shù)庫中沒有的圖表,如等高線圖,樹狀圖和3D圖表。

- 8 -

**Geoplotlib **

Github地址

https://github.com/andrea-cuttone/geoplotlib

image.gif

geoplotlib是一個用于創(chuàng)建地圖和繪制地理數(shù)據(jù)的工具庫。可以使用它來創(chuàng)建各種地圖類型,例如等值線,熱圖和點密度貼圖。你必須安裝Pyglet(面向對象的編程接口)才能使用geoplotlib。盡管如此,由于大多數(shù)的Python數(shù)據(jù)可視化庫都沒有提供地圖類型,因此有一個專門的庫還是可以的。

更多python學習資料,請?zhí)砑雨P注公眾號:

image.gif

參考文章:《數(shù)據(jù)可視化入門教程》https://www.yuque.com/mo-college/beginner-tutorial/uvaiu2

深度講解Python四大常用繪圖庫的“繪圖原理” https://my.oschina.net/u/4579597/blog/4444177

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容