Python可視化 | Seaborn5分鐘入門(六)——heatmap熱力圖

2021-03-02 Python讀財

Seaborn是基於matplotlib的Python可視化庫。它提供了一個高級界面來繪製有吸引力的統計圖形。Seaborn其實是在matplotlib的基礎上進行了更高級的API封裝,從而使得作圖更加容易,不需要經過大量的調整就能使你的圖變得精緻。

註:所有代碼均在IPython notebook中實現

·  正  ·  文  ·  來  ·  啦  ·

heatmap 熱力圖

熱力圖在實際中常用於展示一組變量的相關係數矩陣,在展示列聯表的數據分布上也有較大的用途,通過熱力圖我們可以非常直觀地感受到數值大小的差異狀況。heatmap的API如下所示:

下面將演示這些主要參數的用法,第一件事還是先導入相關的packages。

1import seaborn as sns
2%matplotlib inline
3sns.set(font_scale=1.5)

本次演示採用的數據集是Seaborn中內置的flights航班數據集

1
2data=sns.load_dataset("flights")\
3        .pivot("month","year","passengers") 
4data.head() 

如上圖所示,dataframe中的數據代表了1949年-1960年每個月的航班乘客數量,接下來熱力圖就隆重登場啦!

1sns.set_context({"figure.figsize":(8,8)})
2sns.heatmap(data=data,square=True) 
3
4

    

熱力圖的右側是顏色帶,上面代表了數值到顏色的映射,數值由小到大對應色彩由暗到亮。從上面的heatmap中我們可以得到兩層信息,一是隨著時間的推移,飛機的乘客數量是在逐步增多的,二是航班的乘坐旺季在七月和八月份。下面就具體的參數進行演示。

vmax:設置顏色帶的最大值
vmin:設置顏色帶的最小值

1sns.heatmap(data=data,vmin=200,
2            vmax=500)

可以看到右側的顏色帶最大最小值變了,而heatmap中顏色映射關係也會隨之調整,將本圖和上面的圖進行對比便一目了然。

1sns.heatmap(data=data,cmap="RdBu_r")

好像變好看了?

center:設置顏色帶的分界線

1sns.heatmap(data=data,cmap="RdBu_r",
2            center=300)

    

細心的朋友可以察覺到顏色帶上色彩兩級的分界線變成了300

1sns.heatmap(data=data,annot=True,
2            cmap="RdBu_r")

怎麼回事?亂碼了嗎?其實數值注釋默認顯示的是科學記數法的數值,我們得把數值進行格式化,這就用到了下面的參數。

fmt:format的縮寫,設置數值的格式化形式

1sns.heatmap(data=data,annot=True,
2            fmt="d",cmap="RdBu_r")
3

linewidths:控制每個小方格之間的間距

1sns.heatmap(data=data,annot=True,
2            fmt="d",linewidths=0.3,
3            cmap="RdBu_r") 
4

linecolor:控制分割線的顏色

1sns.heatmap(data=data,annot=True,
2            fmt="d",linewidths=0.3,
3            linecolor="grey",cmap="RdBu_r")
4

1sns.heatmap(data=data,annot=True,
2            fmt="d",cmap="RdBu_r",
3            cbar_kws={"orientation":"horizontal"})  
4

mask:傳入布爾型矩陣,若為矩陣內為True,則熱力圖相應的位置的數據將會被屏蔽掉(常用在繪製相關係數矩陣圖)

1import numpy as np
2
3data_new = np.random.randn(200,10)
4
5
6corr = np.corrcoef(data_new,rowvar=False)
7
8
9mask = np.zeros_like(corr)
10
11
12
13mask[np.triu_indices_from(mask)] = True
14
15with sns.axes_style("white"):
16    sns.heatmap(corr, mask=mask, vmax=0.3, 
17                annot=True,cmap="RdBu_r")

如果大家對上面的代碼流程不大了解,可以把mask列印出來看看

參照mask和上面繪製的圖,應該就很容易理解了,mask中為1的部分,就是要被蓋掉的部分。演示到此為止,想更深入的學習可以自行查閱官方文檔!

轉發,在看,打賞人間三大真情!

相關焦點

  • 【Python可視化6】Seaborn之heatmap熱力圖
    Seaborn是基於matplotlib的Python可
  • 5分鐘入門 Seaborn 熱力圖可視化
    Seaborn是基於matplotlib的Python
  • python熱力圖實現簡單方法
    在本篇內容裡小編給大家分享的是一篇關於python熱力圖實現簡單方法,對此有興趣的朋友們可以學習下。
  • R語言熱力圖綜合教程-heatmap、d3heatmap和ComplexHeatmap
    d3heatmap()[ d3heatmap R包]:繪製交互式/可單擊的熱圖ComplexHeatmap R / Bioconductor的包]:繪製,注釋和排列複雜熱圖(用於基因組數據分析是非常有用的)
  • 基於 seaborn 的相關性熱力圖可視化分析
    解析、可視化    '''    matrix=[]    A=[one[2] for one in data_list]    B=[one[3] for one in data_list]    C=[one[4] for one in data_list]    D=[one[5] for one in data_list]    E=[
  • Python數據可視化—Seaborn
    今天為大家分享的小技巧是python的可視化畫圖庫Seaborn。相信很多小俠客用過matplotlib、pyecharts等可視化庫,可是為什麼還要介紹Seaborn呢?因為它修復了上述兩個庫的一些缺點,比如Seaborn提供了大量的高級接口和自定義主題,而matplotlib沒有這些接口使得很難確定哪些設置來自定義圖表。
  • 4種更快更簡單實現Python數據可視化的方法
    、二維密度圖、蜘蛛網圖和樹狀圖,這些可視化方法你都用過嗎?讀者可能閱讀過我之前的文章「5 Quick and Easy Data Visualizations in Python with Code」,我通過那篇文章向大家介紹了 5 種基礎的數據可視化方法:散點圖、線圖、直方圖、條形圖和箱形圖。這些都是簡單而強大的可視化方法,通過它們你可以對數據集有深刻的認識。在本文中,我們將看到另外 4 個數據可視化方法!
  • 數據產品經理進階:熱力圖分析的底層邏輯
    一、了解熱力圖 熱力圖通過記錄用戶在網站或APP的點擊與瀏覽行為,並通過熱力圖的形式展現出來。簡而言之,熱力圖就是將用戶行為可視化展示。 熱力圖本質上是一個數值矩陣,圖上每一個色塊都是一個數值,通過離散數值、權重算法與分析模型等技術手段,將用戶行為頻度以色塊的形式展現出來。
  • 臥槽,python熱力圖還能這麼玩!
    剛開始學習可視化的時候,老是被熱力圖弄的暈頭轉向,熱力圖這麼多,我該怎麼選!今天鳥哥想給大家聊一聊python繪製地理熱力圖的兩種方式,通過深入對比,確定兩種方式的不同用法及效果第一種是用pyecharts繪製地理熱力圖pyecharts繪製熱力圖只需導入城市名稱和數值即可,因為區縣級以上城市的經緯度信息都已經在模塊中存在,可以在pyecharts/datasets
  • 11個免費工具助你快速入門數據可視化
    它不存儲、處理或轉換數據,因此它並非格式化工具,但它具有一些功能強大的核心特性:●      可適配任意大小的屏幕●      可以每30分鐘請求一次數據並動態更新圖表信息●      可將數據序列遷移至不同的圖表中●      圖表類型、標註、標題、背景可任意調整你只需要提供數據文件的連結,Charted就會根據數據自動生成一幅可交互
  • CNN的一些可視化方法
    其次,現在也已經有很多方法對神經網絡進行分析了,特別是一些可視化方法,可以很直觀的展示深度模型的特徵提取過程。對神經網絡進行可視化分析不管是在學習上還是實際應用上都有很重要的意義,基於此,本文將介紹以下3種CNN的可視化方法:可視化中間特徵圖這種方法很簡單,把網絡中間某層的輸出的特徵圖按通道作為圖片進行可視化展示即可,如下述代碼所示:import
  • CNN 的一些可視化方法
    其次,現在也已經有很多方法對神經網絡進行分析了,特別是一些可視化方法,可以很直觀的展示深度模型的特徵提取過程。對神經網絡進行可視化分析不管是在學習上還是實際應用上都有很重要的意義,基於此,本文將介紹以下3種CNN的可視化方法:可視化中間特徵圖這種方法很簡單,把網絡中間某層的輸出的特徵圖按通道作為圖片進行可視化展示即可,如下述代碼所示:import
  • CNN的一些可視化方法!
    其次,現在也已經有很多方法對神經網絡進行分析了,特別是一些可視化方法,可以很直觀的展示深度模型的特徵提取過程。對神經網絡進行可視化分析不管是在學習上還是實際應用上都有很重要的意義,基於此,本文將介紹以下3種CNN的可視化方法:可視化中間特徵圖這種方法很簡單,把網絡中間某層的輸出的特徵圖按通道作為圖片進行可視化展示即可,如下述代碼所示:import
  • 推薦: 一本「高顏值」的Python語言數據可視化圖書
    《python數據可視化之美》主要介紹如何使用python中的matplotlib、seaborn、plotnine、basemap等包繪製專業圖表。本書先介紹了python語言編程基礎知識,以及使用numpy和pandas兩個包的數據操作方法;再對比了matplotlib、seaborn和plotnine三個包的圖形語法。
  • 【Python教程】用Python進行數據可視化
    分別是直方圖箱線圖小提琴圖條形圖折線圖堆疊柱狀圖散點圖氣泡圖餅狀圖熱力圖$ python --versionPython 3.6.9$ pip3 --versionpip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
  • 【python】Tkinter可視化窗口(三)
    閱讀大概需要2分鐘跟隨小博主,每天進步一丟丟
  • 十分鐘掌握Seaborn,進階Python數據可視化分析
    安裝 Matplotlibpython -m pip install matplotlib安裝 Seaborn然後打開 Jupyter Notebook(安裝好 Anaconda 後,Jupyter 也已裝好,在應用窗口中可以找到),我們就可以直接上手了。
  • 生信分析系列 | 輕鬆利用Python繪製基因表達熱圖
    (閱讀本文需要簡單了解python中的函數、python模組的安裝與模組的調用)文末有驚喜,免費Python信息分析培訓班送給你哦
  • Keras 深度學習模型可視化
    Grad-CAM類激活熱力圖由於每一層的特徵數較多,只能初略觀察下對目標的響應情況。而具體某個類別對應到圖片的那個區域響應最大,也就是對該類別的識別貢獻最大,沒有一個直觀的可視化。    Returns:           heatmap: heatmap.
  • 數據分析入門系列教程-常用圖表
    點擊上方「菜鳥學Python」,選擇「星標」公眾號重磅乾貨,第一時間送達今天我們來學習下數據可視化,其實在前面的章節中,我們也接觸到了一些數據可視化的知識,在分析數據集的時候,有效的可視化圖表,可以幫助我們更好的了解數據。