這篇文章主要介紹“怎么利用Python創(chuàng)作熱力圖”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么利用Python創(chuàng)作熱力圖”文章能幫助大家解決問題。
創(chuàng)新互聯(lián)公司專注于蚌埠網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供蚌埠營銷型網(wǎng)站建設,蚌埠網(wǎng)站制作、蚌埠網(wǎng)頁設計、蚌埠網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務,打造蚌埠網(wǎng)絡公司原創(chuàng)品牌,更為您提供蚌埠網(wǎng)站排名全網(wǎng)營銷落地服務。
熱力圖,是一種通過對色塊著色來顯示數(shù)據(jù)的統(tǒng)計圖表。繪圖時,需指定顏色映射的規(guī)則。例如,較大的值由較深的顏色表示,較小的值由較淺的顏色表示;較大的值由偏暖的顏色表示,較小的值由較冷的顏色表示,等等。
首先,我們來讀取樣例圖像,并對其進行相應的crop
操作。樣例代碼如下:
import numpy as np import matplotlib.pyplot as plt import skimage.io as io img = plt.imread("butterfly-7320158_960_720.jpg") # crop img_cut = img[147:447,:,:] plt.figure() plt.imshow(img_cut)
由于熱力圖主要用于可視化二維矩陣,所以我們需要將彩色圖轉(zhuǎn)化為灰度圖,代碼如下:
from skimage.color import rgb2gray gray_img = rgb2gray(img_cut) plt.imshow(gray_img,cmap='gray')
這一步的操作主要是為了使圖像看起來像像素化的藝術(shù)品。我們首先將圖像劃分為非重疊block
塊。我們將block
塊的大小劃分的越大,像素化程度看起來越高。
對于每個block塊,我們計算該塊中一些代表值。在這里,我們可以使用整個塊的最小值,最大值或中值。這里僅展示最小值的情形,代碼如下:
from skimage import util # select box size block_shape = (10, 10) view = util.view_as_blocks(gray_img, block_shape) # collapse the last two dimensions in one flatten_view = view.reshape(view.shape[0], view.shape[1], -1) # choose min within box min_view = np.min(flatten_view, axis=2) plt.imshow(min_view,cmap='gray')
這一步是我們創(chuàng)作熱力圖藝術(shù)效果自由度最高的步驟。seaborn
調(diào)色板可能是一個很好的選擇。我們來看一些不同風格的效果圖:
import seaborn as sns # save figure for LinkedIn recommended size (2000 width, 600 height) my_dpi=96 plt.figure(figsize=(2000/my_dpi, 600/my_dpi), dpi=my_dpi) sns.heatmap(max_view,xticklabels=False,yticklabels=False,cmap="coolwarm",cbar=False) plt.savefig("coolwarm.png",bbox_inches='tight')
關(guān)于“怎么利用Python創(chuàng)作熱力圖”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。
網(wǎng)站欄目:怎么利用Python創(chuàng)作熱力圖
標題來源:http://aaarwkj.com/article14/peiide.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、搜索引擎優(yōu)化、App設計、定制開發(fā)、外貿(mào)網(wǎng)站建設、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)