數據可視化實例(十): 相關圖(matplotlib,pandas)


相關

 https://datawhalechina.github.io/pms50/#/chapter8/chapter8

導入所需要的庫

import numpy as np              # 導入numpy庫
import pandas as pd             # 導入pandas庫
import matplotlib as mpl        # 導入matplotlib庫
import matplotlib.pyplot as plt
import seaborn as sns           # 導入seaborn庫
%matplotlib inline              # 在jupyter notebook顯示圖像

設定圖像各種屬性

large = 22; med = 16; small = 12

params = {'axes.titlesize': large,    # 設置子圖上的標題字體
            'legend.fontsize': med,     # 設置圖例的字體
            'figure.figsize': (16, 10), # 設置圖像的畫布
           'axes.labelsize': med,      # 設置標簽的字體
            'xtick.labelsize': med,     # 設置x軸上的標尺的字體
            'ytick.labelsize': med,     # 設置整個畫布的標題字體
          'figure.titlesize': large}  
plt.rcParams.update(params)           # 更新默認屬性
 plt.style.use('seaborn-whitegrid')    # 設定整體風格
sns.set_style("white")                # 設定整體背景風格

程序代碼

# step1:導入數據

df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv")

# step2:繪制熱力圖

    # 畫布
plt.figure(figsize = (12, 10),    # 畫布尺寸
          dpi = 80)               # 分辨率
    #熱力圖
sns.heatmap(df.corr(),                         # 相關性矩陣數據集
           xticklabels = df.corr().columns,    # 橫軸標簽
           yticklabels = df.corr().columns,    # 縱軸標簽
           cmap = 'RdYlGn',                    # 色譜(調色板)
           center = 0,                         # 將數據設置為圖例中的均值數據,即圖例中心的數據值
           annot = True)                       # annot默認為False,當annot為True時,在heatmap中每個方格寫入數據

# step3:圖像裝飾

    # 設置標題和字體
plt.title('Correlogram of mtcars'   # 設置標題
          , fontsize = 22)          # 設置標題的尺寸
plt.xticks(fontsize = 12)           # 設置橫坐標標尺字體尺寸
plt.yticks(fontsize = 12)           # 設置橫坐標標尺字體尺寸
plt.show()

 

博文總結

DataFrame.corr(method='pearson', min_periods=1)

參數說明:

method:可選值為{‘pearson’, ‘kendall’, ‘spearman’}

               pearson:Pearson相關系數來衡量兩個數據集合是否在一條線上面,即針對線性數據的相關系數計算,針對非線性 數據便會有誤差。

                kendall:用於反映分類變量相關性的指標,即針對無序序列的相關系數,非正太分布的數據

                spearman:非線性的,非正太分析的數據的相關系數

min_periods:樣本最少的數據量

返回值:各類型之間的相關系數DataFrame表格。

 

seaborn.heatmap

https://www.cntofu.com/book/172/docs/30.md

seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, 
center=None, robust=False, annot=None, fmt='.2g', annot_kws=None,
linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False,
xticklabels='auto', yticklabels='auto', mask=None, ax=None, **kwargs)

 

將矩形數據繪制為顏色編碼矩陣。

這是一個坐標軸級的函數,如果沒有提供給ax參數,它會將熱力圖繪制到當前活動的軸中。除非cbar為False或為cbar_ax提供單獨的Axes,否則將使用此軸空間的一部分繪制顏色圖。

參數:data:矩形數據集

可以強制轉換為ndarray格式數據的2維數據集。如果提供了Pandas DataFrame數據,索引/列信息將用於標記列和行。

vmin, vmax:浮點型數據,可選參數。

用於錨定色彩映射的值,否則它們是從數據和其他關鍵字參數推斷出來的。

cmap:matplotlib 顏色條名稱或者對象,或者是顏色列表,可選參數。

從數據值到顏色空間的映射。 如果沒有提供,默認值將取決於是否設置了“center”。

center:浮點數,可選參數。

繪制有色數據時將色彩映射居中的值。 如果沒有指定,則使用此參數將更改默認的cmap

robust:布爾值,可選參數。

如果是True,並且vminvmax為空,則使用穩健分位數而不是極值來計算色彩映射范圍。

annot:布爾值或者矩形數據,可選參數。

如果為True,則在每個熱力圖單元格中寫入數據值。 如果數組的形狀與data相同,則使用它來代替原始數據注釋熱力圖。

fmt:字符串,可選參數。

添加注釋時要使用的字符串格式代碼。

annot_kws:字典或者鍵值對,可選參數。

annot為True時,ax.text的關鍵字參數。

linewidths:浮點數,可選參數。

划分每個單元格的行的寬度。

linecolor:顏色,可選參數

划分每個單元的線條的顏色。

cbar:布爾值,可選參數。

描述是否繪制顏色條。

cbar_kws:字典或者鍵值對,可選參數。

fig.colorbar的關鍵字參數。

cbar_ax:matplotlib Axes,可選參數。

用於繪制顏色條的軸,否則從主軸獲取。

square:布爾值,可選參數。

如果為True,則將坐標軸方向設置為“equal”,以使每個單元格為方形。

xticklabels, yticklabels:“auto”,布爾值,類列表值,或者整形數值,可選參數。

如果為True,則繪制數據框的列名稱。如果為False,則不繪制列名稱。如果是列表,則將這些替代標簽繪制為xticklabels。如果是整數,則使用列名稱,但僅繪制每個n標簽。如果是“auto”,將嘗試密集繪制不重疊的標簽。

mask:布爾數組或者DataFrame數據,可選參數。

如果為空值,數據將不會顯示在mask為True的單元格中。 具有缺失值的單元格將自動被屏蔽。

ax:matplotlib Axes,可選參數。

繪制圖的坐標軸,否則使用當前活動的坐標軸。

kwargs:其他關鍵字參數。

所有其他關鍵字參數都傳遞給ax.pcolormesh

返回值:ax:matplotlib Axes


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM