R語言環(huán)狀熱力圖的畫法
環(huán)狀熱力圖(Circular Heatmap)是一種以環(huán)狀布局展示數據的可視化方法。它結合了熱力圖和極坐標系統,能夠有效地顯示數據的關系、模式和趨勢。
環(huán)狀熱力圖通常用于可視化二維數據矩陣,其中行和列代表不同的類別或變量,而單元格內的顏色則表示對應變量的數值大小。與傳統的矩形熱力圖不同,環(huán)狀熱力圖將矩形排列成一個環(huán)狀,使得數據在環(huán)上的分布更加直觀。
環(huán)狀熱力圖的優(yōu)勢在于它可以同時展示多個變量之間的關系,并且可以通過調整環(huán)的順序和角度來改變數據展示的方式。此外,通過在環(huán)狀熱力圖中添加其他圖層,如聚類樹圖或標簽,可以進一步增強數據的解讀和呈現效果。
創(chuàng)建環(huán)狀熱力圖的步驟通常包括以下幾個方面:
- 準備數據:將需要展示的數據轉換成適合環(huán)狀熱力圖的格式,通常是一個二維矩陣。
- 繪制環(huán)狀布局:使用相應的繪圖庫創(chuàng)建一個環(huán)狀布局,確定數據的擺放位置。
- 繪制熱力圖:在環(huán)狀布局上繪制熱力圖,通過顏色的不同來表示數據的大小或差異。
- 添加其他圖層:根據需要,可以在環(huán)狀熱力圖中添加聚類樹圖、標簽等其他元素,以增強可視化效果。
- 設置樣式和標簽:調整環(huán)狀熱力圖的樣式、顏色、標簽等細節(jié),使其更具吸引力和清晰度。
- 顯示和解讀:將環(huán)狀熱力圖呈現給觀眾,并解讀其中的數據模式、關系和趨勢。
環(huán)狀熱力圖在生物學、基因組學、社交網絡分析等領域得到廣泛應用。它能夠有效地展示大量的數據,并幫助人們發(fā)現隱藏在數據中的規(guī)律和結構。
這段代碼主要是使用了ggplot2包來繪制熱圖,并最終實現了環(huán)狀熱圖的效果。下面是對代碼思路的解釋:
首先,使用
set.seed(8)設置了隨機數種子,以確保結果的可重復性。接著,創(chuàng)建了一個 25x25 的隨機矩陣
m,并使用colnames和rownames給這個矩陣添加行列名稱。使用
melt函數將矩陣m轉換成長格式的數據框df,其中包含三列:"x"、"y" 和 "value",分別代表橫坐標、縱坐標和值。接下來,使用
ggplot函數創(chuàng)建了一個基礎的熱圖p1,其中使用geom_tile函數繪制了矩形熱圖,并使用scale_fill_gradient2函數設置了顏色漸變。然后,通過
xlim和ylim函數調整了圖形的比例大小,并將調整后的圖保存在p2中。最后,使用
coord_polar函數將熱圖轉換為環(huán)狀熱圖,并將結果保存在p3中。
整體思路就是先創(chuàng)建數據,然后使用 ggplot2 包繪制熱圖,并通過一系列函數調整圖形的樣式和比例,最終實現了環(huán)狀熱圖的效果。
library(reshape)
library(ggplot2)
# 創(chuàng)建數據
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
#調整圖形比例大小
p1 + xlim(-10,25) + ylim(-10,25) -> p2
p2
#環(huán)狀熱圖
p2 + coord_polar(theta = "x", start = pi/4) -> p3
p3

代碼美觀改進
library(reshape2)
library(ggplot2)
# 創(chuàng)建數據
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))
# 調整圖形大小和比例
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)化的版本中,進行了以下改進:
添加了
theme_void()函數來移除默認的背景和網格線,使熱圖更加簡潔。使用
theme(plot.margin = margin(10, 10, 10, 10))調整了圖形的邊距,使其在畫布中居中顯示。使用
theme(...)函數來移除坐標軸、刻度線和網格線,以進一步簡化圖形。使用
labs(title = "環(huán)狀熱圖")添加了一個標題,可以根據需要自定義標題內容。
這些改進旨在提高環(huán)狀熱圖的可讀性,同時使圖形更加美觀。你可以將代碼復制到R環(huán)境中運行,查看優(yōu)化后的環(huán)狀熱圖效果。

到此這篇關于R語言環(huán)狀熱力圖的畫法的文章就介紹到這了,更多相關R語言環(huán)狀熱力圖 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
R語言數據可視化tidyr與ggplot2多個變量分層展示舉例實現
這篇文章主要為大家介紹了R語言可視化tidyr與ggplot2多個變量的分層展示,實現過程文中通過舉例為大家進行了詳解,有需要的朋友可以借鑒參考下2021-11-11

