tft每日頭條

 > 科技

 > 适合數據可視化的圖

适合數據可視化的圖

科技 更新时间:2024-08-15 16:23:23

适合數據可視化的圖(數據可視化常見圖像繪制)1

我們了解了常用的五種圖形:

  • 散點圖
  • 折線圖
  • 柱狀圖
  • 直方圖
  • 餅圖

那麼如何用Matplotlib和Seaborn來畫出它們。

Matplotlib:它在使用時靈活,可以定制化繪圖,但是時間上的花費也比較多。為了提高畫圖效率,包Seaborn基于Matplotlib底層開發,使用更少的代碼,将常用的可視化繪圖過程進行封裝,有時隻需要一行代碼便可以畫出我們想要的圖形,省時省力;此外seaborn還提供更為豐富的圖像以及3D圖形供我們使用。掌握兩個庫的使用可以滿足我們在不同情況下的需求。

散點圖

散點圖(scatter plot),它将兩組數據(或者變量)的值顯示在二維坐标中,适合展示兩個變量之間的關系。

第一張散點圖用matplotlib繪制,第二張用seaborn繪制。我們可以看到兩張圖的區别:matplotlib默認情況下繪圖區呈現是一個長方形,而seaborn是正方形并且含有x軸和y軸的标簽;seaborn還展示散點圖還給出了兩組數據(變量)的分布情況。

适合數據可視化的圖(數據可視化常見圖像繪制)2

說明:

  • 用seaborn畫圖時,使用函數 <!--sns.jointplot(x, y,data=None, kind=‘scatter’)--> 畫散點圖。其中x,y是data中的下标,data就是我們要傳入的數據。
  • 在Seaborn中,數據格式需要轉換一下,采用科學計算庫Pandas中的數據格式DataFrame;對DataFrame的概念我們了解即可,下期DataScience也會推出科學計算庫Numpy和Pandas的使用中會有講解。
折線圖

折線圖能夠顯示數據的變化趨勢,在matplotlib使用plot函數繪制,而在seaborn使用 lineplot(x,y,data=None)函數;data是傳入的數據,一般是pandas中的DataFrame數據結構。

适合數據可視化的圖(數據可視化常見圖像繪制)3

直方圖

直方圖( histogram )将橫坐标等分成一定數量的小區間,在小區間内填充圖形,它的高度是y值。特點是用來繪制連續性的數據,展示一組或者多組數據的分布狀況(統計)。

#數據準備:創建一個一維随機數組 import numpy as np import random import pandas as pd a = np.random.randn(100) x = pd.Series(a) # Series是pandas中用來存放一維數組的數據格式 # ⽤Matplotlib畫直⽅圖; """ 使用plt.hist(x, bins=10)函數 參數x是一維數組,bins代表小區間的數量,默認是10。 """ import matplotlib.pyplot as plt plt.hist(x, bins=10) plt.show() # ⽤Seaborn畫直⽅圖: ''' 使用sns.distplot(x, bins=10, kde=True)函數 參數x是一維數組,bins代表直方圖中的小區間數量,kde代表顯示核密度估計,默認是True。 核密度估計是通過核函數來估計概率密度的方法。 ''' import seaborn as sns sns.distplot(x, kde=False) plt.show() # 圖三顯示用核函數估計概率密度 sns.distplot(x, kde=True) plt.show()

Matplotlib 運行結果:

适合數據可視化的圖(數據可視化常見圖像繪制)4

Seaborn運行結果:

适合數據可視化的圖(數據可視化常見圖像繪制)5

條形圖

通過直方圖可以看到變量的數值分布,那麼條形圖可以幫我們查看類别的特征。在條形圖中,長條形的長度表示類别的頻數,寬度表示類别。

條形圖(bar chart)繪制離散的數據,能夠一眼看出各個數據的大小,比較數據之間的差别。(統計/對比)

# 數據準備 x = ['Cat1', 'Cat2', 'Cat3', 'Cat4', 'Cat5'] y = [3, 5, 7, 2, 9] # ⽤Matplotlib畫條形圖 # plt.bar(x, height)函數,參數x代表x軸的類别,height是y軸的數值 import matplotlib.pyplot as plt plt.bar(x,y) plt.show # ⽤Seaborn畫條形圖 # sns.barplot(x=None,y=None,data=None)函數;參數data為DataFrame類型 import seaborn as sns sns.barplot(x,y) plt.show()

運行結果:

适合數據可視化的圖(數據可視化常見圖像繪制)6

餅圖

餅圖(Pie Chart)可以顯示每個部分大小與總和之間的比例。在Python數據可視化中,主要用Matplotlib的pie函數來繪制。

  • 用到的方法 matplotlib.pyplot.pie()
  • 參數解析:
  • pie(x, explode=None, labels=None, colors=('b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'), autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center = (0, 0), frame = False )
  • 參數說明:
  • x (每一塊)的比例,如果sum(x) > 1會使用sum(x)歸一化 labels (每一塊)餅圖外側顯示的說明文字 explode (每一塊)離開中心距離 startangle 起始繪制角度,默認圖是從x軸正方向逆時針畫起,如設定=90則從y軸正方向畫起shadow 是否陰影 labeldistance label繪制位置,相對于半徑的比例, 如<1則繪制在餅圖内側 autopct 控制餅圖内百分比設置,可以使用format字符串或者format function ‘%1.1f’指小數點前後位數(沒有用空格補齊) pctdistance 類似于labeldistance,指定autopct的位置刻度 radius 控制餅圖半徑返回值: 如果沒有設置autopct,返回(patches, texts) 如果設置autopct,返回(patches, texts, autotexts) patches – list –matplotlib.patches.Wedge對象 texts autotexts – matplotlib.text.Text對象

# 數據準備,顯示各學曆人數的比例 nums = [20, 42, 18, 7, 6] labels = ['High-school', 'Bachelor', 'Master', 'Ph.d', 'Other'] # pie(x, labels=None)函數,x代表繪制餅圖的數據,labels是缺省值,可以為餅圖添加标簽 import matplotlib.pyplot as plt plt.pie(x=nums, labels=labels, autopct='%1.1f%%') # autopct:設置圓内的文本 # '1.1f%'指圖片上顯示的數字格式,表示小數點前後位數# 另外兩個%%是format格式的符号plt.show()

運行結果:

适合數據可視化的圖(數據可視化常見圖像繪制)7

小作業
  • 1、說出Matplotlib和Seaborn庫的區别。
  • 2、總結畫出五種常見圖像的函數。
,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved