【乾貨!】用Python演繹5種常見可視化視圖

2021-01-14 數據分析1480
注意:想要更深層次的理解,需要自己動手跑代碼,體驗數據可視化過程


如果你想要用Python進行數據分析,就需要在項目初期開始進行探索性的數據分析,這樣方便你對數據有一定的了解。其中最直觀的就是採用數據可視化技術,這樣,數據不僅一目了然,而且更容易被解讀。同樣在數據分析得到結果之後,我們還需要用到可視化技術,把最終的結果呈現出來。

按照數據之間的關係,我們可以把可視化視圖劃分為4類,它們分別是比較、聯繫、構成和分布。我來簡單介紹下這四種關係的特點:

比較:比較數據間各類別的關係,或者是它們隨著時間的變化趨勢,比如折線圖。

聯繫:查看兩個或兩個以上變量之間的關係,比如散點圖。

構成:每個部分佔整體的百分比,或者是隨著時間的百分比變化,比如餅圖。

分布:關注單個變量,或者多個變量的分布情況,比如直方圖。

同樣,按照變量的個數,我們可以把可視化視圖劃分為單變量分析和多變量分析。

可視化的視圖可以說是分門別類,多種多樣,今天我主要介紹常用的5種視圖,包括了散點圖、折線圖、直方圖、熱力圖、成對關係。

散點圖的英文叫做scatter plot,它將兩個變量的值顯示在二維坐標中,非常適合展示兩個變量之間的關係。當然,除了二維的散點圖,我們還有三維的散點圖。

在Matplotlib中,我們經常會用到pyplot這個工具包,它包括了很多繪圖函數,類似Matlab的繪圖框架。在使用前你需要進行引用:

import matplotlib.pyplot as plt

在工具包引用後,畫散點圖,需要使用plt.scatter(x, y, marker=None)函數。x、y 是坐標,marker代表了標記的符號。比如「x」、「>」或者「o」。選擇不同的marker,呈現出來的符號樣式也會不同,你可以自己試一下。

除了Matplotlib外,你也可以使用Seaborn進行散點圖的繪製。在使用Seaborn前,也需要進行包引用:

在引用seaborn工具包之後,就可以使用seaborn工具包的函數了。如果想要做散點圖,可以直接使用sns.jointplot(x, y, data=None, kind='scatter')函數。其中x、y是data中的下標。data就是我們要傳入的數據,一般是DataFrame類型。kind這類我們取scatter,代表散點的意思。當然kind還可以取其他值,這個我在後面的視圖中會講到,不同的kind代表不同的視圖繪製方式。

好了,讓我們來模擬下,假設我們的數據是隨機的1000個點。

我們運行一下這個代碼,就可以看到下面的視圖(第一張圖為Matplotlib繪製的,第二張圖為Seaborn繪製的)。其實你能看到Matplotlib和Seaborn的視圖呈現還是有差別的。Matplotlib默認情況下呈現出來的是個長方形。而Seaborn呈現的是個正方形,而且不僅顯示出了散點圖,還給了這兩個變量的分布情況。

在Matplotlib中,我們可以直接使用plt.plot()函數,當然需要提前把數據按照X軸的大小進行排序,要不畫出來的折線圖就無法按照X軸遞增的順序展示。

在Seaborn中,我們使用sns.lineplot (x, y, data=None)函數。其中x、y是data中的下標。data就是我們要傳入的數據,一般是DataFrame類型。

這裡我們設置了x、y的數組。x數組代表時間(年),y數組我們隨便設置幾個取值。下面是詳細的代碼。

然後我們分別用Matplotlib和Seaborn進行畫圖,可以得到下面的圖示。你可以看出這兩個圖示的結果是完全一樣的,只是在seaborn中標記了x和y軸的含義。

直方圖是比較常見的視圖,它是把橫坐標等分成了一定數量的小區間,這個小區間也叫作「箱子」,然後在每個「箱子」內用矩形條(bars)展示該箱子的箱子數(也就是y值),這樣就完成了對數據集的直方圖分布的可視化。

在Matplotlib中,我們使用plt.hist(x, bins=10)函數,其中參數x是一維數組,bins代表直方圖中的箱子數量,默認是10。

在Seaborn中,我們使用sns.distplot(x, bins=10, kde=True)函數。其中參數x是一維數組,bins代表直方圖中的箱子數量,kde代表顯示核密度估計,默認是True,我們也可以把kde設置為False,不進行顯示。核密度估計是通過核函數幫我們來估計概率密度的方法。

我們創建一個隨機的一維數組,然後分別用Matplotlib和Seaborn進行直方圖的顯示,結果如下,你可以看出,沒有任何差別,其中最後一張圖就是kde默認為Ture時的顯示情況。

熱力圖,英文叫heat map,是一種矩陣表示方法,其中矩陣中的元素值用顏色來代表,不同的顏色代表不同大小的值。通過顏色就能直觀地知道某個位置上數值的大小。另外你也可以將這個位置上的顏色,與數據集中的其他位置顏色進行比較。

我們一般使用Seaborn中的sns.heatmap(data)函數,其中data代表需要繪製的熱力圖數據。

這裡我們使用Seaborn中自帶的數據集flights,該數據集記錄了1949年到1960年期間,每個月的航班乘客的數量。

通過seaborn的heatmap函數,我們可以觀察到不同年份,不同月份的乘客數量變化情況,其中顏色越淺的代表乘客數量越多,如下圖所示:

如果想要探索數據集中的多個成對雙變量的分布,可以直接採用sns.pairplot()函數。它會同時展示出DataFrame中每對變量的關係,另外在對角線上,你能看到每個變量自身作為單變量的分布情況。它可以說是探索性分析中的常用函數,可以很快幫我們理解變量對之間的關係。

pairplot函數的使用,就好像我們對DataFrame使用describe()函數一樣方便,是數據探索中的常用函數。

這裡我們使用Seaborn中自帶的iris數據集,這個數據集也叫鳶尾花數據集。鳶尾花可以分成Setosa、Versicolour和Virginica三個品種,在這個數據集中,針對每一個品種,都有50個數據,每個數據中包括了4個屬性,分別是花萼長度、花萼寬度、花瓣長度和花瓣寬度。通過這些數據,需要你來預測鳶尾花卉屬於三個品種中的哪一種。

這裡我們用seaborn中的pairplot函數來對數據集中的多個雙變量的關係進行探索,如下圖所示。從圖上你能看出,一共有sepal_length、sepal_width、petal_length和petal_width4個變量,它們分別是花萼長度、花萼寬度、花瓣長度和花瓣寬度。

下面這張圖相當於這4個變量兩兩之間的關係。比如矩陣中的第一張圖代表的就是花萼長度自身的分布圖,它右側的這張圖代表的是花萼長度與花萼寬度這兩個變量之間的關係。

相關焦點

  • AXURE原型設計:手機版可視化視圖應用案例
    將數據可視化,可以更快地理解和處理信息,是數據分析中重要的部分。本文從四個案例出發,分析如何做好數據可視化,希望對你有幫助。數據可視化在數據分析中扮演著越來越重要的角色,試想一下,如果你把一堆數據拿給你的老闆或者甲方爸爸看,那肯定會被痛批一頓。
  • 超硬核的 Python 數據可視化教程!
    Python實現可視化的三個步驟:確定問題,選擇圖形 轉換數據,應用函數 參數設置,一目了然 1、首先,要知道我們用哪些庫來畫圖?matplotlibpython中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,然後開始做縱向與橫向拓展。
  • biopython簡介
    OBF的成員項目部分如下 biopython基於python這個簡單易學的程式語言,提供了一系列處理常見生物信息任務的接口,具體可以完成以下幾種任務 1. 對常用的文件格式,比如fasta, blast等,進行讀寫 2.
  • 可視化工具不知道怎麼選?深度評測5大Python數據可視化工具
    作者 | 劉早起來源 | 早起Python(ID: zaoqi-python)相信很多讀者學習Python就是希望作出各種酷炫的可視化圖表,當然你一定會聽說過Matplotlib、Pyecharts、Seaborn、Plotly、Bokeh這五大工具,本文就將通過真實繪圖來深度評測這五個Python數據可視化的庫,看看到底這幾種工具各有什麼優缺點
  • 使用biopython可視化染色體和基因元件
    基因組結構元件的可視化有多種方式,比如IGV等基因組瀏覽器中以track為單位的展示形式,亦或以circos為代表的圈圖形式,比如在細胞器基因組組裝中,基因元件常用圈圖形式展示,示例如下
  • Python可視化工具推薦:圖片交互性行極佳的Plotly
    1、 簡單介紹一般大家在學習python機器學習的時候,用的最多的可視化的包就是matplot和seaborn, 這2個可視化的優點在於門檻低,代碼容易理解,並且容易上手。在市場上,還有一種很火的軟體叫echart,那為什麼我們不介紹echart而介紹python plotly呢,那是因為echart是用java來寫的,並且寫法比較複雜,需要重新學習java語言才能畫出類似的這種可交互的圖出來。
  • 數字黑洞:python-matplotlib來實現可視化
    1.2 數字黑洞與python-matplotlib可視化1.2.4 python-matplotlib可視化來看看效果:n=481359246(後十位數值)規律:最後10個數值:13-40-20-10-5-
  • 這10 個 Python 可視化工具,你都用過?
    由於 matplotlib 是第一個 Python 可視化程序庫,有許多別的程序庫都是建立在它的基礎上或者直接調用它。 比如pandas和Seaborn就是matplotlib的外包,它們讓你能用更少的代碼去調用 matplotlib的方法。
  • 應用BioPython解析和可視化蛋白質的結構
    今日我們以Python語言為基礎,調用BioPython框架/模塊,以2003年SARS冠狀病毒的刺突蛋白(spike protein)為例子來實現蛋白質的解析與可視化。今天咱們就使用BioPython模塊來解析和可視化蛋白質分子。BioPython模塊的安裝首先,在終端下安裝BioPython模塊:pip install biopython經過一些提示BioPython即刻安裝完成。這裡多說一句,由於國內應用pip安裝模塊很慢,如果想要高速安裝,可以選用清華大學的鏡像,即清華大學的tuna鏡像。
  • python sys模塊的常見用法匯總
    python的內置模塊sys,提供了系統相關的一些變量和函數,在實際開發中,常見的有以下幾種用法1.版本有限制的代碼,可以通過以上方法來判斷python版本是否符合要求。, '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5
  • 數據工程師需要掌握的 18 個 Python 庫
    數據可視化Matplotlibmatplotlib是受MATLAB的啟發構建的。MATLAB是數據繪圖領域廣泛使用的語言和工具。MATLAB語言是面向過程的。利用函數的調用,MATLAB中可以輕鬆的利用一行命令來繪製,然後再用一系列的函數調整結果。它有一套完全仿照MATLAB的函數形式的繪圖接口,在matplotlib.pyplot模塊中。
  • 如何在Python中創建交互式可視化?(建議收藏)
    如何在Python中創建交互式可視化。在探索添加更多交互控制項之前,我們將僅以不同格式繪製數據開始。如果您一直關注我一段時間,會注意到這是數據可視化系列文章中的第三篇。首先使用默認的python可視化庫matplotlib引入了數據可視化。然後,我們學習了如何使用相同的庫在時間序列上創建動畫可視化效果。
  • ImagePy——UI界面支持開放插件的Python開源圖像處理框架
    簡介ImagePy 是用 python 編寫的開源圖像處理框架。redirectedFrom=fulltext安裝:支持的系統:帶有 python2.7 和 python3 及以上版本的 windows、linux、mac 系統。ImagePy 是一個基於 wxpython 的 ui 框架,它不能在 linux 上用 pip 進行安裝。
  • 行上行下|2020年腦科學技術乾貨合集
    乾貨 | 腦電-超掃描數據分析16. 實現EEG功能連接的可視化17. 人類大腦連接的網絡可視化工具18. 使用Cartool工具包分析EEG源成像?19. HyPyP包:超掃描可視化python包20. 用行為數據處理EEG數據事件碼21. 自動刪除休息階段的腦電數據?22.
  • 50種常用的matplotlib可視化,再也不用擔心模型背著我亂跑了
    最近 Machine Learning Plus 的作者介紹了 50 種最常用的 matplotlib 可視化圖表,而本文簡要介紹了這篇文章,詳細的 50 種可視化需要查閱原文。50 種可視化圖原地址:https://www.machinelearningplus.com/plots/top-50-matplotlib-visualizations-the-master-plots-python介紹該表格主要介紹了 7 種不同的 matplotlib 可視化類別,讀者可根據目的選擇不同的圖。
  • 如何構建一個基於可視化理論的完美Python圖表?
    全文共3114字,預計學習時長14分鐘圖源:unsplash將數據轉換為可視化圖表是門學問。存在子圖時,Plotly圖形是用每一行和每一列索引的,不像matplotlib必須跟蹤坐標軸的列表(當n=1時,plt.subplots的調用會生效)。
  • 超全Anaconda(Python整合包)導修(圖文詳解)
    基於不同數據的屬性,Python共有六種數據類型。其中,列表(list),字典(dictionary),集合(set),還有元組(tuple)是Python中的集合數據類型。' , 2: 'python'}c = (1,2,3,4,5)d = {1,2,3,4,5}print("the listis" , a)print("thedictionary is" ,b)print("the tupleis" , c)print("the set is" , d)操作符(Operators
  • Python中的時間序列數據可視化的完整指南
    在本文的最後我用另一種方式進行討論。重採樣和滾動請記住上面的「Volume」數據的第一行圖。正如我們之前討論過的,這裡數據量太大了。它可以通過重採樣來修復。繪製月平均數據將在很大程度上解決這個問題,而不是繪製每日數據。為此,我將使用已經為上面的條形圖和框圖準備的df_month數據集。
  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    二、可視化5. MatplotlibMatplotlib是Python中最常用的可視化工具之一,可以非常方便地創建海量類型地2D圖表和一些基本的3D圖表。Matplotlib最早是為了可視化癲癇病人的腦皮層電圖相關的信號而研發,因為在函數的設計上參考了MATLAB,所以叫做Matplotlib。
  • 4種視圖,將銷售數據管理得井井有條
    不了解黑帕雲視圖功能,這些問題都可能成為銷售數據管理的障礙。視圖,是黑帕雲重要的基礎功能,除了你已經熟悉的表格、看板、日曆、畫廊等視圖樣式外,它搭配篩選、排序、分組、欄位隱藏等功能一起使用,還能按照不同的條件添加多個數據視圖,來滿足用戶不同的數據查看需求。下面介紹黑帕雲視圖功能的 4 種使用方法。學會它,讓銷售管理變得更加井井有條。