R語言環(huán)狀熱力圖的畫法
環(huán)狀熱力圖(Circular Heatmap)是一種以環(huán)狀布局展示數(shù)據(jù)的可視化方法。它結(jié)合了熱力圖和極坐標(biāo)系統(tǒng),能夠有效地顯示數(shù)據(jù)的關(guān)系、模式和趨勢。
環(huán)狀熱力圖通常用于可視化二維數(shù)據(jù)矩陣,其中行和列代表不同的類別或變量,而單元格內(nèi)的顏色則表示對應(yīng)變量的數(shù)值大小。與傳統(tǒng)的矩形熱力圖不同,環(huán)狀熱力圖將矩形排列成一個環(huán)狀,使得數(shù)據(jù)在環(huán)上的分布更加直觀。
環(huán)狀熱力圖的優(yōu)勢在于它可以同時展示多個變量之間的關(guān)系,并且可以通過調(diào)整環(huán)的順序和角度來改變數(shù)據(jù)展示的方式。此外,通過在環(huán)狀熱力圖中添加其他圖層,如聚類樹圖或標(biāo)簽,可以進(jìn)一步增強(qiáng)數(shù)據(jù)的解讀和呈現(xiàn)效果。
創(chuàng)建環(huán)狀熱力圖的步驟通常包括以下幾個方面:
- 準(zhǔn)備數(shù)據(jù):將需要展示的數(shù)據(jù)轉(zhuǎn)換成適合環(huán)狀熱力圖的格式,通常是一個二維矩陣。
- 繪制環(huán)狀布局:使用相應(yīng)的繪圖庫創(chuàng)建一個環(huán)狀布局,確定數(shù)據(jù)的擺放位置。
- 繪制熱力圖:在環(huán)狀布局上繪制熱力圖,通過顏色的不同來表示數(shù)據(jù)的大小或差異。
- 添加其他圖層:根據(jù)需要,可以在環(huán)狀熱力圖中添加聚類樹圖、標(biāo)簽等其他元素,以增強(qiáng)可視化效果。
- 設(shè)置樣式和標(biāo)簽:調(diào)整環(huán)狀熱力圖的樣式、顏色、標(biāo)簽等細(xì)節(jié),使其更具吸引力和清晰度。
- 顯示和解讀:將環(huán)狀熱力圖呈現(xiàn)給觀眾,并解讀其中的數(shù)據(jù)模式、關(guān)系和趨勢。
環(huán)狀熱力圖在生物學(xué)、基因組學(xué)、社交網(wǎng)絡(luò)分析等領(lǐng)域得到廣泛應(yīng)用。它能夠有效地展示大量的數(shù)據(jù),并幫助人們發(fā)現(xiàn)隱藏在數(shù)據(jù)中的規(guī)律和結(jié)構(gòu)。
這段代碼主要是使用了ggplot2
包來繪制熱圖,并最終實(shí)現(xiàn)了環(huán)狀熱圖的效果。下面是對代碼思路的解釋:
首先,使用
set.seed(8)
設(shè)置了隨機(jī)數(shù)種子,以確保結(jié)果的可重復(fù)性。接著,創(chuàng)建了一個 25x25 的隨機(jī)矩陣
m
,并使用colnames
和rownames
給這個矩陣添加行列名稱。使用
melt
函數(shù)將矩陣m
轉(zhuǎn)換成長格式的數(shù)據(jù)框df
,其中包含三列:"x"、"y" 和 "value",分別代表橫坐標(biāo)、縱坐標(biāo)和值。接下來,使用
ggplot
函數(shù)創(chuàng)建了一個基礎(chǔ)的熱圖p1
,其中使用geom_tile
函數(shù)繪制了矩形熱圖,并使用scale_fill_gradient2
函數(shù)設(shè)置了顏色漸變。然后,通過
xlim
和ylim
函數(shù)調(diào)整了圖形的比例大小,并將調(diào)整后的圖保存在p2
中。最后,使用
coord_polar
函數(shù)將熱圖轉(zhuǎn)換為環(huán)狀熱圖,并將結(jié)果保存在p3
中。
整體思路就是先創(chuàng)建數(shù)據(jù),然后使用 ggplot2
包繪制熱圖,并通過一系列函數(shù)調(diào)整圖形的樣式和比例,最終實(shí)現(xiàn)了環(huán)狀熱圖的效果。
library(reshape) library(ggplot2) # 創(chuàng)建數(shù)據(jù) set.seed(8) m <- matrix(round(rnorm(200), 2), 25, 25) colnames(m) <- paste(1:25) rownames(m) <- paste(1:25) df <- melt(m) colnames(df) <- c("x", "y", "value") #ggplot2繪圖 p1<-ggplot(df, aes(x = x, y = y, fill = value)) + geom_tile(color = "skyblue") + #添加values值 #geom_text(aes(label = value), color = "white", size = 4) + scale_fill_gradient2(low = "#075AFF", mid = "#FFFFCC", high = "#FF0000") + coord_fixed() p1 #調(diào)整圖形比例大小 p1 + xlim(-10,25) + ylim(-10,25) -> p2 p2 #環(huán)狀熱圖 p2 + coord_polar(theta = "x", start = pi/4) -> p3 p3
代碼美觀改進(jìn)
library(reshape2) library(ggplot2) # 創(chuàng)建數(shù)據(jù) set.seed(8) m <- matrix(round(rnorm(200), 2), 25, 25) colnames(m) <- paste(1:25) rownames(m) <- paste(1:25) df <- melt(m) colnames(df) <- c("x", "y", "value") # 創(chuàng)建環(huán)狀熱圖 p <- ggplot(df, aes(x = x, y = y, fill = value)) + geom_tile(color = "skyblue") + scale_fill_gradient2(low = "#075AFF", mid = "#FFFFCC", high = "#FF0000") + coord_polar(start = pi / 4) + theme_void() + theme(plot.margin = margin(10, 10, 10, 10)) # 調(diào)整圖形大小和比例 p + xlim(-10, 25) + ylim(-10, 25) + theme(axis.title = element_blank(), axis.text = element_blank(), axis.ticks = element_blank(), panel.grid = element_blank()) + labs(title = "環(huán)狀熱圖") + theme(plot.title = element_text(hjust = 0.5)) -> p # 顯示環(huán)狀熱圖 print(p)
在這個優(yōu)化的版本中,進(jìn)行了以下改進(jìn):
添加了
theme_void()
函數(shù)來移除默認(rèn)的背景和網(wǎng)格線,使熱圖更加簡潔。使用
theme(plot.margin = margin(10, 10, 10, 10))
調(diào)整了圖形的邊距,使其在畫布中居中顯示。使用
theme(...)
函數(shù)來移除坐標(biāo)軸、刻度線和網(wǎng)格線,以進(jìn)一步簡化圖形。使用
labs(title = "環(huán)狀熱圖")
添加了一個標(biāo)題,可以根據(jù)需要自定義標(biāo)題內(nèi)容。
這些改進(jìn)旨在提高環(huán)狀熱圖的可讀性,同時使圖形更加美觀。你可以將代碼復(fù)制到R環(huán)境中運(yùn)行,查看優(yōu)化后的環(huán)狀熱圖效果。
到此這篇關(guān)于R語言環(huán)狀熱力圖的畫法的文章就介紹到這了,更多相關(guān)R語言環(huán)狀熱力圖 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
R語言關(guān)于隨機(jī)森林算法的知識點(diǎn)詳解
在本篇文章里小編給大家整理的是一篇關(guān)于R語言關(guān)于隨機(jī)森林算法的知識點(diǎn)詳解內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。2021-05-05R語言實(shí)現(xiàn)地理加權(quán)回歸(GWR)
這篇文章主要為大家介紹了R語言實(shí)現(xiàn)地理加權(quán)回歸(GWR)操作流程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10R語言 實(shí)現(xiàn)兩表連接且輸出不重復(fù)數(shù)據(jù)
這篇文章主要介紹了R語言 實(shí)現(xiàn)兩表連接且輸出不重復(fù)數(shù)據(jù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03R語言關(guān)于二項(xiàng)分布知識點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于R語言關(guān)于二項(xiàng)分布知識點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-05-05R語言數(shù)據(jù)可視化tidyr與ggplot2多個變量分層展示舉例實(shí)現(xiàn)
這篇文章主要為大家介紹了R語言可視化tidyr與ggplot2多個變量的分層展示,實(shí)現(xiàn)過程文中通過舉例為大家進(jìn)行了詳解,有需要的朋友可以借鑒參考下2021-11-11R語言RcppEigen計算點(diǎn)乘與矩陣乘法連乘算法錯誤解決
這篇文章主要為大家介紹了RcppEigen計算點(diǎn)乘與矩陣乘法時發(fā)生連乘計算錯誤的解決方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11