r语言绘制精美pcoa图_R语言绘制交互式热图
熱圖
通過熱圖可以簡單地聚合大量數據,并使用一種漸進的色帶來優雅地表現,最終效果一般優于離散點的直接顯示,可以很直觀地展現空間數據的疏密程度或頻率高低。但也由于很直觀,熱圖在數據表現的準確性并不能保證。
原理
生成熱圖需要四個基本步驟,即
創建緩沖區
填充緩沖區
緩沖區灰度疊加
顏色映射
其中顏色映射根據RGB三通道中的色帶中映射后對圖像重新著色,實現熱力圖
交互式熱圖
交互式熱圖繪制,分析數據相關性。
heatmap(熱圖)常用于高維數據的可視化。
數據集中的數據按照矩陣形式,編碼為彩色的網格結構。熱圖常附有樹狀圖。
熱圖應用領域很多,如基因、相關性、缺失值等。
heatmaply包
heatmaply包能夠生成交互式地圖,鼠標懸停可查看數值信息、拖動局部可放大查看。
載入相關包:
通過library函數將所需要的可視化包進行載入
首先分析所需要的相關包,然后進行載入,本項目中所用的包有:
dplyr
purrr
tidyr
tidybayes
ggridges
cowplot
rstan
brms
gganimate
ggplot2
通過library(“packagename”)將以上包挨個完成載入。
其中載入packages——heatmaply包依賴ggplot2包,載入heatmaply之前需裝載相關的依賴包。MacOS在繪制heatmaply時,將自動調用XQuartz插件,如沒有繪制成功,可從官網下載安裝XQuartz。
R是一款開源軟件,先進入官網可以看到官網提供不同的R軟件提供我們下載,我們根據電腦的系統進行選擇,而后鏡像選擇距離我們地域位置最近的地區進行安裝,我們可以看到有很多國家支持R鏡像維護,我們找到CHINA清華鏡像進行下載,進入下載界面進入點擊藍色字體可以下載最新的版本R,額外下載的XQuartz插件已經不再包中提供,我們首先官網中下載XQuartz插件然后進行對應安裝就可以了。
接下來我們通過代碼載入heatmaply包,代碼如下:
> library(ggplot2)
> library("heatmaply")
基礎繪圖
使用heatmaply包默認參數繪制交互式熱圖,代碼如下:
> heatmaply(mtcars)
們的鼠標懸停在矩陣將顯示對應的數值,其中的heatmaply( )函數作用是繪制交互熱圖。使用默認設置、參數
邊距調整:
邊距調整的函數為margins( ),其功能為對邊距進行設置
參數調整代碼如下:
相關性:
使用margins()函數中的參數調整進行繪制相關性,代碼如下:
用顏色限制調用相關性:
其中我們需要補充一個限制函數limits()
limits( ):限制相關性顏色,相關性的顏色設置,其參數為k_col, k_row顏色通過dendextend::color_branches控制
設置顏色也可以用如下代碼進行設置:
> heatmaply_cor(cor(mtcars), margins = c(40, 40), k_col = 2, k_row = 2)
完成修改后的相關性熱圖:
接下來我們要對顏色進行設置,
在做相關性分析時,可以將顏色設置為預設之外的組合,但這種顏色在選擇時需要額外注意,繪制的結果可能對色弱/色盲是不友好的。
載入依賴包RColorBrewer同樣的我們使用library()函數進行載入即可,代碼如下:
完成導入RColorBrewer包與修改參數代碼的相關性熱圖:
完成顏色設置后我們要對其數據進行標準化處理,假定數據均來自正態分布數據集,則標準化(減去均值后除以標準差),將使這些數值范圍限定在相同區間,確保數據并不會由于測量維度差異過大而導致權重偏差、影響結果。此時,這些數值將反映均值到標準差的距離
實現數據預處理標準化,縮放代碼如下:
中的scale參數是對行列進行縮放,在其中我們以column進行縮放,完成熱圖的優化
如果數據集中的維度來自多個觀測樣本,例如收入、年齡,由于收入范圍數值較大,將會產生較大權重,影響最終的結果。使用“標準化”,將數據范圍限定在【0,1】
標準化將數據提升到【0,1】范圍,這將保留每個數據的原始分布狀態,同時將各維度下的數據限定在同樣的權重中。
綜上我們需要進行數據標準化處理操作,代碼如下:
完成標準化數據的可視化熱圖修改:
其中的normalize參數對應著對數據集進行標準化處理
我們發現熱圖中還有存在毛躁處,我們開始考慮對缺失值的審查,heatmaply包提供了對缺失值的審查,代碼如下:
缺失值審查處理完成灰度疊加:
is.na10()用以對缺失值進行審查,grid_gap表示間隔,其中我們間隔賦值為1即可
以上步驟我們便可以實現用R語言繪制交互式熱圖
歡迎大家加入人工智能圈參與交流
人工智能學習圈 - 知乎?www.zhihu.com總結
以上是生活随笔為你收集整理的r语言绘制精美pcoa图_R语言绘制交互式热图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: boost创建线程池_Java并发 之
- 下一篇: 原字体_在包装上玩转字体