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

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時(shí)代matplotlib 如何畫出熱度圖heatmap?
matplotlib 如何畫出熱度圖heatmap?
2023-03-27
收藏

Matplotlib是Python中廣泛使用的繪圖庫之一。它具有豐富的圖形功能,可以用于繪制各種類型的圖表,包括線條圖、散點(diǎn)圖、餅圖、柱狀圖和熱度圖(heatmap)等。

熱度圖是一種用顏色來表示數(shù)據(jù)值大小的二維圖表。通常,熱度圖用于可視化矩陣或表格式數(shù)據(jù),并以不同的顏色來區(qū)分不同數(shù)值的數(shù)據(jù)。在本文中,我們將介紹如何使用matplotlib制作熱度圖。

準(zhǔn)備數(shù)據(jù)

首先,我們需要準(zhǔn)備一個(gè)數(shù)據(jù)集來繪制熱度圖。這里我們將使用numpy包生成一個(gè)隨機(jī)的 $ 10 times 10 $ 的矩陣來模擬一個(gè)數(shù)據(jù)集:

import numpy as np

data = np.random.rand(10, 10)

生成的 data 矩陣如下所示:

array([[0.82028575, 0.76881294, 0.71971194, 0.30491486, 0.67111979,
        0.17771597, 0.80438331, 0.27302774, 0.18129643, 0.63314806],
       [0.77143625, 0.63551487, 0.56306356, 0.41241424, 0.47234638,
        0.30451328, 0.65190823, 0.47868446, 0.03420709, 0.39056214],
       [0.88830154, 0.0510874 , 0.04667507, 0.63655448, 0.1009649 ,
        0.53011341, 0.88860116, 0.8072012 , 0.2627727 , 0.16129027],
       [0.03957677, 0.88986948, 0.29828759, 0.34845264, 0.07125663,
        0.85638637, 0.08063718, 0.65769739, 0.41561651, 0.82219976],
       [0.01306113, 0.02081601, 0.00762399, 0.52039123, 0.36600046,
        0.24940888, 0.21817512, 0.94152895, 0.14410661, 0.5584188 ],
       [0.18524447, 0.86325457, 0.70310962, 0.17384236, 0.56810572,
        0.05814711, 0.14610126, 0.76581545, 0.36524594, 0.0123577 ],
       [0.69838845, 0.54777405, 0.51271685, 0.74905936, 0.04087629,
        0.60057023, 0.27027469, 0.7392686 , 0.04315166, 0.09859514],
       [0.79271592, 0.69936978, 0.17137361, 0.63954807, 0.19399017,
        0.38978258, 0.3345555 , 0.33223096, 0.03575185, 0.527903  ],
       [0.20489367, 0.00811152, 0.35635863, 0.67832791, 0.0613843 ,
        0.70448221, 0.85365584, 0.88137019, 0.14431136, 0.59657908],
       [0.28042776, 0.765406  , 0.53737002, 0.89526902, 0.61241154,
        0.2861603 , 0.69044175, 0.11878924, 0.75902697, 0.28845139]])

繪制熱度圖

接下來

,我們可以使用matplotlib.pyplot.imshow()函數(shù)來繪制熱度圖。此函數(shù)接受一個(gè)二維數(shù)組作為輸入,并將其以顏色編碼的形式顯示出來。

import matplotlib.pyplot as plt

plt.imshow(data)
plt.show()

執(zhí)行上述代碼后,會生成一個(gè)如下所示的熱度圖:

heatmap1.png

在熱度圖中,每個(gè)單元格的顏色表示該單元格對應(yīng)的值大小。默認(rèn)情況下,imshow()會根據(jù)數(shù)據(jù)范圍自動選擇顏色映射(colormap)。

我們可以通過設(shè)置cmap參數(shù)指定不同的顏色映射。常用的顏色映射包括'viridis'、'plasma'和'magma'等。例如,如果使用'magma'顏色映射,則可以通過以下方式進(jìn)行設(shè)置:

plt.imshow(data, cmap='magma')
plt.show()

運(yùn)行上述代碼會生成以下熱度圖:

heatmap2.png

添加標(biāo)簽

通常,在繪制熱度圖時(shí),我們可能需要添加行列標(biāo)簽以更好地解釋數(shù)據(jù)。這可以通過設(shè)置xticksyticks參數(shù)來完成。我們可以在imshow()函數(shù)之前添加以下兩行代碼來設(shè)置行列標(biāo)簽:

plt.xticks(range(10), ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])
plt.yticks(range(10), ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'])

上述代碼將行列標(biāo)簽分別設(shè)置為字母'a'到'j'和大寫字母'A'到'J'。然后再次運(yùn)行imshow()函數(shù),就可以得到帶有行列標(biāo)簽的熱度圖:

heatmap3.png

添加顏色刻度表

最后,我們可以通過添加一個(gè)顏色刻度表來說明熱度圖中每種顏色代表的數(shù)據(jù)值范圍。這可以通過使用colorbar()函數(shù)來完成。

plt.colorbar()
plt.show()

上述代碼使熱度圖顯示一個(gè)顏色刻度表,其中最小值為0.0,最大值為1.0。

heatmap4.png

總結(jié)

本文介紹了如何使用matplotlib制作熱度圖。我們首先準(zhǔn)備了一個(gè)隨機(jī)的 $ 10 times 10 $ 的數(shù)據(jù)集,然后使用imshow()函數(shù)繪制了熱度圖,設(shè)置了行列標(biāo)簽和顏色映射,并添加了一個(gè)顏色刻度表以說明顏色代表的數(shù)據(jù)值范圍。

熱度圖是一種可視化工具,可用于探索數(shù)據(jù)集中的模式和趨勢,或者比較不同數(shù)據(jù)集之間的差異。使用matplotlib繪制熱度圖非常簡單且靈活,可以根據(jù)需求自由調(diào)整樣式和布局,進(jìn)而提高數(shù)據(jù)可視化的效果。

數(shù)據(jù)分析咨詢請掃描二維碼

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

數(shù)據(jù)分析師資訊
更多

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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".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); }