R語言環(huán)狀熱力圖的畫法
環(huán)狀熱力圖(Circular Heatmap)是一種以環(huán)狀布局展示數(shù)據(jù)的可視化方法。它結(jié)合了熱力圖和極坐標(biāo)系統(tǒng),能夠有效地顯示數(shù)據(jù)的關(guān)系、模式和趨勢(shì)。
環(huán)狀熱力圖通常用于可視化二維數(shù)據(jù)矩陣,其中行和列代表不同的類別或變量,而單元格內(nèi)的顏色則表示對(duì)應(yīng)變量的數(shù)值大小。與傳統(tǒng)的矩形熱力圖不同,環(huán)狀熱力圖將矩形排列成一個(gè)環(huán)狀,使得數(shù)據(jù)在環(huán)上的分布更加直觀。
環(huán)狀熱力圖的優(yōu)勢(shì)在于它可以同時(shí)展示多個(gè)變量之間的關(guān)系,并且可以通過調(diào)整環(huán)的順序和角度來改變數(shù)據(jù)展示的方式。此外,通過在環(huán)狀熱力圖中添加其他圖層,如聚類樹圖或標(biāo)簽,可以進(jìn)一步增強(qiáng)數(shù)據(jù)的解讀和呈現(xiàn)效果。
創(chuàng)建環(huán)狀熱力圖的步驟通常包括以下幾個(gè)方面:
- 準(zhǔn)備數(shù)據(jù):將需要展示的數(shù)據(jù)轉(zhuǎn)換成適合環(huán)狀熱力圖的格式,通常是一個(gè)二維矩陣。
- 繪制環(huán)狀布局:使用相應(yīng)的繪圖庫創(chuàng)建一個(gè)環(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)系和趨勢(shì)。
環(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)狀熱圖的效果。下面是對(duì)代碼思路的解釋:
首先,使用
set.seed(8)設(shè)置了隨機(jī)數(shù)種子,以確保結(jié)果的可重復(fù)性。接著,創(chuàng)建了一個(gè) 25x25 的隨機(jī)矩陣
m,并使用colnames和rownames給這個(gè)矩陣添加行列名稱。使用
melt函數(shù)將矩陣m轉(zhuǎn)換成長(zhǎng)格式的數(shù)據(jù)框df,其中包含三列:"x"、"y" 和 "value",分別代表橫坐標(biāo)、縱坐標(biāo)和值。接下來,使用
ggplot函數(shù)創(chuàng)建了一個(gè)基礎(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)
在這個(gè)優(yōu)化的版本中,進(jìn)行了以下改進(jìn):
添加了
theme_void()函數(shù)來移除默認(rèn)的背景和網(wǎng)格線,使熱圖更加簡(jiǎn)潔。使用
theme(plot.margin = margin(10, 10, 10, 10))調(diào)整了圖形的邊距,使其在畫布中居中顯示。使用
theme(...)函數(shù)來移除坐標(biāo)軸、刻度線和網(wǎng)格線,以進(jìn)一步簡(jiǎn)化圖形。使用
labs(title = "環(huán)狀熱圖")添加了一個(gè)標(biāo)題,可以根據(jù)需要自定義標(biāo)題內(nèi)容。
這些改進(jìn)旨在提高環(huán)狀熱圖的可讀性,同時(shí)使圖形更加美觀。你可以將代碼復(fù)制到R環(huán)境中運(yùn)行,查看優(yōu)化后的環(huán)狀熱圖效果。

到此這篇關(guān)于R語言環(huán)狀熱力圖的畫法的文章就介紹到這了,更多相關(guān)R語言環(huán)狀熱力圖 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
R語言關(guān)于隨機(jī)森林算法的知識(shí)點(diǎn)詳解
在本篇文章里小編給大家整理的是一篇關(guān)于R語言關(guān)于隨機(jī)森林算法的知識(shí)點(diǎn)詳解內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。2021-05-05
R語言實(shí)現(xiàn)地理加權(quán)回歸(GWR)
這篇文章主要為大家介紹了R語言實(shí)現(xiàn)地理加權(quán)回歸(GWR)操作流程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
R語言 實(shí)現(xiàn)兩表連接且輸出不重復(fù)數(shù)據(jù)
這篇文章主要介紹了R語言 實(shí)現(xiàn)兩表連接且輸出不重復(fù)數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
R語言關(guān)于二項(xiàng)分布知識(shí)點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于R語言關(guān)于二項(xiàng)分布知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-05-05
R語言數(shù)據(jù)可視化tidyr與ggplot2多個(gè)變量分層展示舉例實(shí)現(xiàn)
這篇文章主要為大家介紹了R語言可視化tidyr與ggplot2多個(gè)變量的分層展示,實(shí)現(xiàn)過程文中通過舉例為大家進(jìn)行了詳解,有需要的朋友可以借鑒參考下2021-11-11
R語言RcppEigen計(jì)算點(diǎn)乘與矩陣乘法連乘算法錯(cuò)誤解決
這篇文章主要為大家介紹了RcppEigen計(jì)算點(diǎn)乘與矩陣乘法時(shí)發(fā)生連乘計(jì)算錯(cuò)誤的解決方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11

