99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀簡單5步了解相關矩陣的注釋熱圖
簡單5步了解相關矩陣的注釋熱圖
2019-09-29
收藏
簡單5步了解相關矩陣的注釋熱圖

作者 | Julia Kho

編譯 | CDA數據分析師

Annotated Heatmaps of a Correlation Matrix in 5 Simple Steps

熱圖是數據的圖形表示,也就是說,它使用顏色來向讀者傳達價值。當您擁有大量數據時,這是一個很好的工具,可以幫助觀眾了解最重要的區(qū)域。

簡單5步了解相關矩陣的注釋熱圖

在本文中,我將指導您通過5個簡單步驟創(chuàng)建自己的相關矩陣注釋熱圖。

  1. 導入數據
  2. 創(chuàng)建關聯矩陣
  3. 設置mask隱藏上三角
  4. 在Seaborn中創(chuàng)建熱圖
  5. 導出熱圖

1)導入數據

df = pd.read_csv("Highway1.csv",index_col = 0)

簡單5步了解相關矩陣的注釋熱圖

該公路事故數據集包含汽車事故率,每百萬車輛英里的事故以及若干設計變量。

2)創(chuàng)建相關矩陣

corr_matrix = df.corr()

簡單5步了解相關矩陣的注釋熱圖

我們使用的是.corr 創(chuàng)建相關矩陣 。請注意,此矩陣中不存在htype列,因為它不是數字。我們需要使用htype來計算相關性。

df_dummy = pd.get_dummies(df.htype)

df = pd.concat([df,df_dummy],axis = 1)

簡單5步了解相關矩陣的注釋熱圖

另外,請注意,相關矩陣的上三角部分與下三角對稱。因此,我們的熱圖不需要顯示整個矩陣。我們將在下一步隱藏上三角形。

3)設置mask隱藏上三角

mask = np.zeros_like(corr_matrix,dtype = np.bool)

mask[np.triu_indices_from(mask)] =True

讓我們打破上面的代碼吧。 np.zeros_like() 返回一個零數組,其形狀和類型與給定的數組相同。通過傳遞相關矩陣,我們得到如下的零數組。

簡單5步了解相關矩陣的注釋熱圖

該 dtype=np.bool 參數會覆蓋數據類型,因此我們的數組是一個布爾數組。

簡單5步了解相關矩陣的注釋熱圖

np.triu_indices_from(mask) 返回數組上三角形的索引。

簡單5步了解相關矩陣的注釋熱圖

現在,我們將上三角形設置為True。 mask[np.triu_indices_from(mask)]= True

簡單5步了解相關矩陣的注釋熱圖

現在,我們有一個掩碼可以用來生成熱圖。

4)在Seaborn中創(chuàng)建熱圖

f,ax = plt.subplots(figsize =(11,15))

heatmap=sns.heatmap(corr_matrix,

mask = mask,

square = True,

linewidths = .5,

cmap ='coolwarm',

cbar_kws = {'shrink':.4,

'ticks':[-1,-.5,0,0.5,1]},

vmin = -1,

vmax = 1,

annot = True,

annot_kws = {"size":12})

#增加列名做為標簽

ax.set_yticklabels(corr_matrix.columns,rotation = 0)

ax.set_xticklabels(corr_matrix.columns)

sns.set_style({'xtick.bottom':True},{'ytick.left':True})

簡單5步了解相關矩陣的注釋熱圖

為了創(chuàng)建我們的熱圖,我們傳遞步驟3中的相關矩陣和我們在步驟4中創(chuàng)建的蒙版以及自定義參數,以使我們的熱圖看起來更好。如果您有興趣了解每條線的作用,請參考以下參數說明。

#使每個單元格成方形

square = True,

#設置將每個單元格劃分為.5的行的寬度

linewidths = .5,

#Map數據值到coolwarm顏色空間

cmap ='coolwarm',

#Shrink在[-1,-.5,0,0.5,1]處的圖例大小和標簽刻度線

cbar_kws = {'shrink':.4,'ticks':[-1,-.5,0,0.5,1]},

#設置顏色條的最小值

vmin = -1,

#設置顏色條的最大值

vmax = 1,

#轉到相關值的注釋

annot = True,

#將注釋設置為12

annot_kws = {"size":12}

#將列名添加到x標簽

ax.set_xticklabels(corr_matrix.columns)

#將列名添加到y標簽并將文本旋轉到0度

ax.set_yticklabels(corr_matrix.columns,rotation = 0)

#在熱圖的底部和左側顯示標記

sns.set_style({'xtick.bottom':True},{'ytick.left':True})

簡單5步了解相關矩陣的注釋熱圖

5)導出熱圖 現在你有熱圖,讓我們把它導出。

heatmap.get_figure().savefig('heatmap.png', bbox_inches='tight')

如果您發(fā)現有一個非常大的熱圖不能正確導出,請使用bbox_inches = 'tight' 以防止圖像被切斷。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數1:配置參數 // 參數2:回調,回調的第一個參數驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }