從零開始學Python可視化(二):掌握統計圖形的繪製

2020-12-27 百家號

折線圖和散點圖常用且實用,但是並不能滿足我們的作圖需求。

這次我們會嘗試更多常見的統計圖形,比如條形圖、直方圖、餅圖等,我們的目標是掌握工作學習過程中使用最頻繁的圖形技能。

1. 柱狀圖(條形圖) —— bar() / barh()

柱狀圖又叫條形圖,用於繪製定性(分類)數據的分布特徵,比如不同國家的GDP、不同年齡段的平均體重等。這次,我們以一組學生的身高來演示它的作圖方法。

import matplotlib.pyplot as plt# 生成數據x = [1, 2, 3, 4, 5, 6, 7, 8]y = [176, 165, 188, 150, 170, 180, 172, 160]# 畫柱狀圖plt.bar(x, y, align = 'center', color = 'c', tick_label = ['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'], hatch = '/') # 設置軸標籤plt.xlabel('學生編號')plt.ylabel('身高(cm)')plt.show()

參數:

align:對齊方式,即條形相對於刻度的位置color:顏色tick_label:刻度的標籤hatch:填充我們還可以使用barh畫水平(horizontal)方向的條形圖,它們兩個函數的參數基本一致,只是我們要將xlabel和ylabel的值對調一下(注意:x和y不需要對調):

import matplotlib.pyplot as plt# 生成數據x = [1, 2, 3, 4, 5, 6, 7, 8]y = [176, 165, 188, 150, 170, 180, 172, 160]# 畫柱狀圖plt.barh(x, y, align = 'center', color = 'c', tick_label = ['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'], hatch = '/')# 設置軸標籤plt.xlabel('身高(cm)')plt.ylabel('學生編號')plt.show()

2. 直方圖 —— hist()

直方圖跟條形圖很像,但是直方圖是用於表現定量數據的分布,比如說中國人口的年齡分布情況、一所高中高三所有學生的高考成績的分布情況等。跟bar()和barh()不同的是,hist()函數輸入的只有一組數據,在輸出的圖形中,橫坐標對應著不同的分組,縱坐標則對應著該組的計數。

import matplotlib.pyplot as pltimport numpy as np# 生成數據x = np.random.randint(0, 10, 500)# 直方圖plt.hist(x, bins = range(0, 11), color = 'g', histtype = 'bar', rwidth = 0.95, alpha = 0.6) # 設置軸標籤plt.xlabel('分組')plt.ylabel('計數')plt.show()

參數:

bins:如果參數是一個整數,則相當於我們制定了分桶的數量,如果參數是一個列表,則相當於我們指定了每個分桶的邊界。histtype:分桶樣式rwidth:相對寬度,即每個柱子寬度相對於兩個刻度之間寬度的比例。alpha:透明度3. 餅圖 —— pie()

餅圖主要用於繪製不同類型的百分比,比如不同國家的人口佔比、一個員工的薪資構成等。我們假設有ABCD四個公司,他們瓜分了一塊市場,我們用餅圖來將他們的市場佔有情況表現出來:

import matplotlib.pyplot as pltimport numpy as np# 生成數據ratio = [0.1, 0.4, 0.35, 0.15]labels = ['A', 'B', 'C', 'D']# 直方圖plt.pie(ratio, labels=labels, autopct='%3.1f%%', startangle=90)# 設置軸標籤plt.title('不同公司市場佔比')plt.show()參數:

labels: 類別標籤/名稱autopct:餅圖種比例數字的格式startangle:起始角度,默認會逆時針從水平0度角開始排列color:我們可以用一個列表指定不同分類的顏色

4. 極線圖 —— polar()

這一函數用於在極坐標軸上繪製折線圖。

import matplotlib.pyplot as pltimport numpy as np# 生成數據theta = np.linspace(0, 2*np.pi, 12, endpoint=False)r = np.random.rand(12)# 極線圖plt.polar(theta, r, color = 'chartreuse', linewidth = 2, marker = '*', mfc = 'b', ms = 10)plt.show()

5. 散點圖 —— scatter()

我們在之前已經接觸過散點圖了,但是這次我們將展示更強大的散點圖。

import matplotlib.pyplot as pltimport matplotlib as mplimport numpy as np# 生成數據x = np.random.randn(100)y = np.random.randn(100)# 散點圖plt.scatter(x, y, s = np.power(10*x+20*y, 2), c = np.random.rand(100), cmap = mpl.cm.RdYlBu, marker = 'o', alpha = 0.3))plt.show()我們指定了橫縱坐標的數據、每個點的大小、每個點的顏色以及浮點數到顏色的映射表、標記的形狀以及透明度,看,通過這種方式,我們可以對多維數據進行可視化。

6. 杆圖 —— stem()

劉大成先生在《Python數據可視化之matplotlib實踐》一書中將其翻譯為棉棒圖,挺形象的,但是我還是強行使用了杆圖的名字,雖然這個名字簡直難聽到了天際……

杆圖用於繪製離散而有序的數據,在圖中,這些離散的點會分布在一條基線的上下兩側,我們可以直觀地感受到它們的波動趨勢以及分布情況。

import matplotlib.pyplot as pltimport numpy as np# 生成數據x = np.linspace(0, 10, 20)y = np.random.randn(20)# 繪圖plt.stem(x, y, linefmt='-.', markerfmt='o', basefmt='-')plt.show()參數:

linefmt:離散點到基線的垂線的樣式markerfmt:離散點的樣式basefmt:基線的樣式這裡fmt是format的簡寫。

7. 箱線圖 —— boxplot()

箱線圖是非常經典、實用且常用的一種用於觀察連續數據分布的圖形,它能清晰地展示出數據的上下四分位數、上下邊緣、中位數的位置,還能根據規則幫助我們確定一些異常值,是觀察數據分布的一大利器。

import matplotlib.pyplot as pltimport numpy as np# 生成數據x = np.random.randn(1000)# 繪圖plt.boxplot(x)# 添加網格plt.grid(axis='y', ls=':', lw=1, color='gray', alpha=0.4)plt.show()

8. 誤差棒圖 —— errorbar()

此函數用於繪製y軸方向或者x軸方向的誤差範圍:

import matplotlib.pyplot as pltimport numpy as np# 生成數據x = np.linspace(0, 1, 10)y = np.exp(x)# 繪圖plt.errorbar(x, y, fmt=':og', yerr=np.power(x, 2), xerr=0.02)plt.show()這裡我們使用橫坐標的平方作為y軸方向上的誤差,同時使用一個常數0.02作為x軸方向上的誤差。在fmt(format)參數下,我們使用』:og』將線條設置為虛線、將數據點設置為大圓點、將顏色設置為綠色。

好了,以上就是今天要分享的幾種常用的統計圖形,今天我們的目標就是掌握這些圖形對應的函數的基本調用,後邊我們會詳細探索它們在實際的數據分析過程中的應用。

相關焦點

  • 如何從零開始學Python
    如何從零開始學python?書聲琅琅教育番茄老師介紹,零基礎的朋友學python相對來講難度要大,但是很多python大牛都是從零基礎上來的,對於這些python大牛來講,參加合理的培訓指導和有一套python學習路線是分不開的,有目標有計劃的學習才能更加高效。
  • 推薦: 一本「高顏值」的Python語言數據可視化圖書
    所以很有必要系統性地介紹python的繪圖語法系統,包括最基礎也最常用的matplotlib包、常用於統計分析的seaborn、最新出現類似R ggplot2語法的plotnine以及用於地理空間數據可視化的basemap包。在先介紹數據可視化基礎理論後,本書系統性地介紹了幾乎所有常見的二維和三維圖表的繪製方法,包括簡單的柱形圖系列、條形圖系列、折線圖系列,地圖系列等。
  • 數據統計可視化——python生成詞雲
    如何統計文章詞頻,從而更快了解一篇文章所獲得的中文詞頻統計數據進行詞雲可視化展示,更加清晰的看到文章關鍵詞的權重詞雲庫WordCloudwordcloud庫,可以說是python非常優秀的詞雲展示第三方庫。詞雲以詞語為基本單位更加直觀和藝術的展示文本而且使用簡單,內容豐富,先看看它生成的詞雲是什麼樣的。
  • 【Python教程】用Python進行數據可視化
    在本文中,我將介紹如何開始使用Python和matplotlib、seaborn兩個庫對數據進行可視化。Seaborn:該 Python 庫能夠創建富含信息量和美觀的統計圖形。Seaborn 基於 matplotlib,具有多種特性,比如內置主題、調色板、可以可視化單變量數據、雙變量數據,線性回歸數據和數據矩陣以及統計型時序數據等,能讓我們創建複雜的可視化圖形。
  • python繪圖之美:seaborn統計數據可視化
    它提供了一個高級界面,用於繪製具有吸引力和信息豐富的統計圖形。Seaborn旨在使可視化成為探索和理解數據的核心部分。它的面向數據集的繪圖函數對包含整個數據集的數據流和數組進行操作,並在內部執行必要的語義映射和統計聚合以生成信息圖。
  • Python可視化教程(上)-基礎篇
    經過學習之後,我總結了利用python實現可視化的三個步驟:確定問題,選擇圖形轉換數據,應用函數參數設置,一目了然python中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,
  • 從零開始學Python數據分析【16】-- matplotlib(雷達圖)
    作者:劉順祥個人微信公眾號:每天進步一點點2015前文傳送門:從零開始學Python數據分析
  • Python數據可視化教程之基礎篇
    經過學習之後,我總結了利用python實現可視化的三個步驟:確定問題,選擇圖形轉換數據,應用函數參數設置,一目了然python中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,
  • Python 可視化神器--Plotly
    學習Python是做數分析的最基礎的一步,數據分析離不開數據可視化。Python第三方庫中我們最常用的可視化庫是 pandas,matplotlib,pyecharts,當然還有 Tableau,另外最近在學習過程中發現另一款可視化神器-Plotly,它是一款用來做數據分析和可視化的在線平臺,功能非常強大,可以在線繪製很多圖形比如條形圖、散點圖、餅圖、直方圖等等。
  • Python的可視化工具概述
    對Matplotlib最大的抱怨是需要大量工作的到期望的圖表.在處理這些例子時,我發現更容易獲得優美的圖形,不需要大量大代碼.對於matplotlib冗餘性的一個小例子,看一下這個ggplot後例子。方法我相信,只要人們開始閱讀這一點,他們會指出更好的方式來使用這些工具。
  • 統計圖形自己就可搞定,一文學會用Python繪製經典餅圖
    餅圖,應該是大家比較熟悉的圖形了吧,作為用來展示定性數據比例分布特徵的經典統計圖形,通過餅圖,你可以很直觀地看到各組數據的佔比情況哦,上次已經和大家探討了如何用Python來繪製經典的階梯圖,今天呢,咱們繼續深入聊聊哦,看看在Python中如何繪製更為經典和常用的餅圖
  • Python可視化:學會Matplotlib這幾點就夠了!
    #y軸文字標籤plt.savefig('test',dpi=600) #保存圖片plt.show() #可視化圖形展示Python中的Matplotlib可視化編程整體結構主要有以下幾部分組成:(1)導入Matplotlib庫來進行(2)為了圖表可視化中文顯示必備代碼(3)可視化核心代碼,依據不同的圖形使用不同函數如直方圖:plt.plot
  • Pandas可視化綜合指南:手把手從零教你繪製數據圖表
    曉查 編譯整理量子位 出品 | 公眾號 QbitAI數據可視化本來是一個非常複雜的過程,但隨著Pandas數據幀plot()函數的出現,使得創建可視化圖形變得很容易。最近,一位來自印度的小哥以2019年世界幸福指數的數據為例,詳細講述了在Pandas中plot()函數的各種參數設置的小技巧,熟練掌握這些技巧後,你也能繪製出豐富多彩的可視化圖表。
  • 高效使用 Python 可視化工具 Matplotlib
    基本前提如果你除了本文之外沒有任何基礎,建議用以下幾個步驟學習如何使用matplotlib:學習基本的matplotlib術語,尤其是什麼是圖和坐標軸始終使用面向對象的接口,從一開始就養成使用它的習慣用基礎的pandas繪圖開始你的可視化學習用seaborn進行更複雜的統計可視化用matplotlib來定製
  • Python可視化庫解析
    4.AltairAltair是Python的一個公認的統計可視化庫。它的API簡單、友好、一致,並建立在強大的vega - lite(交互式圖形語法)之上。6.ggplotggplot是基於R的ggplot2和圖形語法的Python的繪圖系統,實現了更少的代碼繪製更專業的圖形。
  • 信號系統實驗報告3-MATLAB的數據圖形可視化
    一、實驗目的1、掌握MATLAB數據可視化的基本命令和方法,掌握MATLAB圖形窗口的創建,以及運用.fig文件保存圖形的方法。2、掌握運用plot命令繪製二維曲線,實現數據圖形可視化的方法。3、掌握通過MATLAB圖形窗口及其屬性編輯器,對已繪製圖形對象的屬性(點色、點大小、點邊色、線色、線型、線寬、標記、標題、坐標軸、圖例、坐標格網等)進行交互式設置與編輯的方法。
  • 從零開始學Python【16】--matplotlib(雷達圖)
    (含爬蟲代碼)從零開始學Python【15】--matplotlib(散點圖)從零開始學Python【14】--matplotlib(折線圖)從零開始學Python【13】--matplotlib(直方圖)從零開始學Python【12】--matplotlib(箱線圖)從零開始學Python
  • Python學習第89課-數據可視化之直方圖繪製
    【每天幾分鐘,從零入門python編程的世界!】假設你想投資某一個城市的房地產,你肯定需要對這個城市的人口分布、增長潛力做一個調查,這時我們就需要做一個直方圖(histogram plot)。因此,我們大概可以這樣理解:直方圖就是把數據劃分區域後,以數據區域為節點繪製的柱狀圖的集合。
  • 從零開始學Python【4】--numpy
    該模塊主要有這幾個功能:數學領域的線性代數、傅立葉變換;統計學領域的統計計算、隨機數生成等。這裡我們就針對統計裡面的計算和隨機數生成作講解。np.floor# 返回最近的整數np.rint # 判斷是否缺失np.isnan# 判斷是否有限np.isfinite# 判斷是否無限np.isinf# 冪運算np.power# 餘數np.mod統計函數
  • Python數據可視化—Seaborn
    今天為大家分享的小技巧是python的可視化畫圖庫Seaborn。相信很多小俠客用過matplotlib、pyecharts等可視化庫,可是為什麼還要介紹Seaborn呢?因為它修復了上述兩個庫的一些缺點,比如Seaborn提供了大量的高級接口和自定義主題,而matplotlib沒有這些接口使得很難確定哪些設置來自定義圖表。